java - 如何替换数组列表中的重复元素?
问题描述
我正在尝试用新的唯一 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));
}
}
解决方案
您希望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);
}
}
推荐阅读
- python - 这个散景列数据源是如何工作的?
- ruby-on-rails - Rails 活动记录关系
- python - pytorch如何计算矩阵成对距离?为什么“自我”距离不为零?
- java - java中的单数组json解析器
- java - Vert.x MongoClient 错误“命令失败并出现错误 9:‘需要‘光标’选项,聚合除外……”
- vue.js - 如何以编程方式返回 Vue cli 的预制 Home.vue
- excel - 如何检查单元格值的范围,然后在 VBA 中插入另一个值
- javascript - AngularJS Protractor:在无头模式下随机失败(Firefox)
- swift - UISlider 和 Pan Gesture Recognizer 不能混用
- ios - 请将嵌入式目标的主机目标添加到 Podfile