java 将List中多条重复数据合并
时间: 2024-03-16 20:45:51 浏览: 18
可以通过以下步骤将List中的多条重复数据合并:
1. 定义一个HashMap,将List中的每个元素作为key,出现的次数作为value,将所有元素都放入HashMap中。
2. 遍历HashMap,将出现次数大于1的元素合并成一个元素,并将合并后的元素放入一个新的List中。
3. 遍历HashMap,将出现次数等于1的元素直接放入新的List中。
下面是Java代码示例:
```java
List<String> list = new ArrayList<String>();
list.add("a");
list.add("b");
list.add("c");
list.add("a");
list.add("c");
Map<String, Integer> map = new HashMap<String, Integer>();
for (String str : list) {
if (map.containsKey(str)) {
map.put(str, map.get(str) + 1);
} else {
map.put(str, 1);
}
}
List<String> newList = new ArrayList<String>();
for (Map.Entry<String, Integer> entry : map.entrySet()) {
if (entry.getValue() > 1) {
String mergedStr = entry.getKey();
newList.add(mergedStr);
} else if (entry.getValue() == 1) {
newList.add(entry.getKey());
}
}
```
以上代码中,我们定义了一个List<String>类型的list,并向其中添加了多个重复的字符串。然后,我们定义了一个HashMap<String, Integer>类型的map,将list中的每个元素作为key,出现的次数作为value,将所有元素都放入了HashMap中。接着,我们遍历了HashMap,将出现次数大于1的元素合并成一个元素,并将合并后的元素放入了一个新的List<String>类型的newList中。最后,我们遍历了HashMap,将出现次数等于1的元素直接放入newList中。