首页 > 解决方案 > 如何替换数组列表中的重复元素?

问题描述

我正在尝试用新的唯一 ID 替换 Array List 中的重复元素。这样元素的顺序不会丢失,但重复的值会被更改为新的值。

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));
   }
}

标签: javaarrayslistarraylist

解决方案


您希望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);
    }
}

推荐阅读