我正在尝试用新的唯一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));
}
}
答案 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);
}
}