Java List 和 Set互相转换
List:有序(指的是存储顺序跟插入顺序有关),可以存储重复元素;
Set: 无序(存储顺序跟插入顺序无关), 不能存储重复元素。
1. List -> Set ==> 可以去重,且变成无序
//List -> Set ==> 可以去重,且变成无序
List<Integer> list = new ArrayList<>();
list.add(2);
list.add(4);
list.add(4);
list.add(3);
list.add(3);
list.add(1);
System.out.println(list); //[2, 4, 4, 3, 3, 1] 有序(按添加顺序排序)
//方法1:
Set<Integer> set1 = new HashSet<>();
set1.addAll(list);
System.out.println(set1); //[1, 2, 3, 4]
//方法2:
Set<Integer> set2 = new HashSet<>(list);
System.out.println(set2); //[1, 2, 3, 4]
2. List -> Set
// Set -> List
Set<Integer>set = new HashSet<>();
set.add(1);
set.add(4);
set.add(2);
set.add(3);
System.out.println(set); //[1, 2, 3, 4] 跟插入顺序无关
//方法1:
List<Integer> list1= new ArrayList<>();
list1.addAll(set);
System.out.println(list1); //[1, 2, 3, 4]
//方法2:
List<Integer> list2= new ArrayList<>(set);
System.out.println(list2); //[1, 2, 3, 4]