【java基础】合并两个类型相同的List
问题背景
在开发过程中,经常需要对多个List进行合并操作,但是由于List元素类型不同,导致无法简单的调用addAll方法进行合并操作。如果是相同类型的List,则可以使用addAll方法将多个List合并为一个List,但是对于不同类型的List,就需要使用一些其他的方法进行处理。
解决方案
对于类型相同的List,可以使用addAll方法进行合并。但是对于类型不同的List,可以使用以下两种方法进行合并。
方法一:使用addAll方法
虽然前面说到了addAll方法只能用于类型相同的List,但是可以通过转换为通用类型Object的List来实现类型不同的List的合并。
List<Object> list1 = Arrays.asList(1, 2, 3);
List<Object> list2 = Arrays.asList(4, 5, 6);
List<Object> resultList = new ArrayList<>();
resultList.addAll(list1);
resultList.addAll(list2);
该方法需要将所有List转换为通用类型Object的List,因此在使用时需要注意类型转换的正确性。
方法二:使用Stream API
Java 8引入了Stream API,通过使用Stream API可以更加方便地对多个List进行处理。
List<Integer> list1 = Arrays.asList(1, 2, 3);
List<Integer> list2 = Arrays.asList(4, 5, 6);
List<Integer> resultList = Stream.of(list1, list2)
.flatMap(Collection::stream)
.collect(Collectors.toList());
首先使用Stream.of方法将多个List转换为一个Stream对象,并使用flatMap方法将所有List转换为单个Stream对象。最后使用collect方法将Stream对象转换为一个List对象。
总体来说,使用Stream API的方法更加简洁和易于理解,并且不需要转换为通用类型。
小结
本文介绍了两种合并类型相同的List的方法,第一种方法是将所有List转换为Object类型的List,然后使用addAll方法进行合并;第二种方法使用Java 8的Stream API,将多个List转换为一个Stream对象,然后使用flatMap和collect方法进行合并。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:【java基础】合并两个类型相同的list - Python技术站