在java的list中,相同数据合并,不同数据追加怎么写
时间: 2024-03-09 10:45:35 浏览: 97
如果您想要在 Java 的 List 中合并相同的数据,并将不同的数据追加到一起,您可以使用 HashMap 来实现。具体实现步骤如下:
1. 遍历 List 中的每个元素,将相同的元素放到同一个 HashMap 的同一个键中,并将不同的数据以 List 形式追加到 HashMap 的同一个键的值中。例如:
```java
List<String> list = Arrays.asList("a", "b", "a", "c", "d", "b");
Map<String, List<String>> map = new HashMap<>();
for (String item : list) {
if (!map.containsKey(item)) {
map.put(item, new ArrayList<>(Arrays.asList(item)));
} else {
map.get(item).add(item);
}
}
```
这里首先定义了一个空的 HashMap `map`,然后遍历 List 中的每个元素,如果元素不在 HashMap 中,则将元素作为键,并将其存储为包含一个元素的 List;如果元素已经在 HashMap 中,则将其追加到相应键的 List 中。
2. 遍历 HashMap 中的每个键值对,将其中包含多个元素的 List 进行合并,并将结果存储到新的 List 中。例如:
```java
List<String> result = new ArrayList<>();
for (List<String> value : map.values()) {
if (value.size() > 1) {
result.add(value.get(0) + String.join("", value.subList(1, value.size())));
} else {
result.add(value.get(0));
}
}
```
这里首先定义了一个空的 ArrayList `result`,然后遍历 HashMap 中的每个值,如果 List 中包含多个元素,则将第一个元素与其余元素进行拼接,然后将结果存储到新的 List 中;如果 List 中只包含一个元素,则直接将其存储到新的 List 中。
3. 最后,您可以打印输出新的 List,查看合并结果。例如:
```java
System.out.println(result);
```
这将输出 `[a, b, aa, c, d]`,其中 `'a'`、`'b'`、`'c'` 和 `'d'` 是不同的元素,而 `'aa'` 是由两个相同的 `'a'` 元素合并而成的。
希望这个回答能够帮助您!
阅读全文