如何替换数组列表中的重复元素?

时间:2019-02-13 21:06:28

标签: java arrays list arraylist

我正在尝试用新的唯一ID替换数组列表中的重复元素。这样就不会丢失元素的顺序,而是仅将重复的值更改为新的值。

ArrayList<String> aa = new ArrayList<> Arrays.asList("111111111","446463636","111111111","343634633","111111111"));
for(int i=0; i< aa.size();i++) {
    if(aa.get(i)==null){
        String uuids = UUID.randomUUID().toString().replace("-", "");
        aa.add(uuids);
        aa.remove(aa.get(i));
   }
}

1 个答案:

答案 0 :(得分:2)

您要set与重复项位于相同索引处的元素。如果将add元素添加到列表中,则会将元素放在后面。尝试这样的事情:

for (int i = 0; i < list.size(); i++) {
    if (Collections.frequency(list, list.get(i)) > 1) {
        String uuids = UUID.randomUUID().toString().replace("-", "");
        list.set(i, uuids);
    }
}