1.直接上代码(add方法)
@Test
public void test7(){
List<String> strList = Arrays.asList("aaa", "bbb", "ccc", "ddd", "eee");
List<String> strList1 = Arrays.asList("aaa", "11", "22","ccc");
List list = new ArrayList();
list.add(strList);
list.add(strList1);
System.out.println("list*****"+list);
2.运行结果
3.直接上代码(addALL方法)
@Test
public void test7() {
List<String> strList = Arrays.asList("aaa", "bbb", "ccc", "ddd", "eee");
List<String> strList1 = Arrays.asList("aaa", "11", "22", "ccc");
List list = new ArrayList();
list.addAll(strList);
list.addAll(strList1);
System.out.println("list*****" + list);
}
4.运行结果
5.结论
从运行结果可以看出区别,add与addAll都会重复添加元素,使用set便不会重复添加
列如:
@Test
public void test7() {
List<String> strList = Arrays.asList("aaa", "bbb", "ccc", "ddd", "eee");
List<String> strList1 = Arrays.asList("aaa", "11", "22", "ccc");
Set list = new HashSet();
list.addAll(strList);
list.addAll(strList1);
System.out.println("list*****" + list);
}
结果如下:
可以看出set集合不会重复添加元素,但set集合是无序的
最后彩蛋(联想记忆):
java8中Stream的Map和Flatmap可以和 list集合中 add与 addAll类比:
map:
Stream<Stream<Character>> stream2 = strList.stream()
.map(TestStreamaAPI::filterCharacter);//{{a,a,a},{b,b,b}}
flatMap:
Stream<Character> stream3 = strList.stream()
.flatMap(TestStreamaAPI::filterCharacter);//{a,a,a,b,b,b}