在java中,我有好几个List,我想把它们合并成一个list且保证每个list中的元素在新的list中对应位置保持不变,如果有重复的元素,则只保留一个
时间: 2024-03-27 09:40:19 浏览: 83
可以使用Java 8的流式API和flatMap()函数来实现这个要求。具体的做法是,首先将所有的List集合合并成一个Stream流,然后使用distinct()函数去除重复的元素,最后将结果转化为List集合即可。
具体代码如下:
```java
List<List<Integer>> lists = new ArrayList<>();
lists.add(Arrays.asList(1, 2, 3));
lists.add(Arrays.asList(2, 3, 4));
lists.add(Arrays.asList(4, 5, 6));
List<Integer> mergedList = lists.stream()
.flatMap(Collection::stream)
.distinct()
.collect(Collectors.toList());
System.out.println(mergedList);
```
输出结果为:[1, 2, 3, 4, 5, 6]
相关问题
java中list中套list合并成一个list
在Java中,可以使用Stream API来合并一个List中的多个List。具体步骤如下:
1. 首先,将List中的每个List转换为Stream对象。
2. 然后,使用flatMap()方法将所有Stream对象合并成一个Stream对象。
3. 最后,使用collect()方法将Stream对象转换为List对象。
下面是一个示例代码,演示如何将一个List中的多个List合并成一个List:
```java
List<List<Integer>> lists = new ArrayList<>();
lists.add(Arrays.asList(1, 2, 3));
lists.add(Arrays.asList(4, 5, 6));
lists.add(Arrays.asList(7, 8, 9));
List<Integer> result = lists.stream()
.flatMap(Collection::stream)
.collect(Collectors.toList());
System.out.println(result); // 输出:[1, 2, 3, 4, 5, 6, 7, 8, 9]
```
在上面的示例代码中,我们首先创建了一个包含多个List的List对象。然后,我们使用Stream API将所有List对象合并成一个List对象,并将结果打印出来。
java中怎么两个list合并成一个list
可以使用List.addAll()方法将其中一个List添加至另一个List中,如下所示:
List<String> list1 = new ArrayList<>();
list1.add("A");
list1.add("B");
List<String> list2 = new ArrayList<>();
list2.add("C");
list2.add("D");
list1.addAll(list2);
System.out.println(list1); // 输出 [A, B, C, D]
阅读全文