set集合元素唯一,無序;list集合元素可以重復,有序。
1、set轉list:數據保持不變,順序發生變化,可以使用Collections.sort進行排序(Collections.shuffle 隨機排序,Collections.reverse 反轉順序)。
2、list轉set:去除重復數據,只保留一個。轉成linkedHashSet時,原順序不變;轉成treeSet可以排序,轉成hashSet無序。
package set; import java.util.ArrayList; import java.util.Collections; import java.util.HashSet; import java.util.LinkedHashSet; import java.util.LinkedList; import java.util.List; import java.util.Set; import java.util.Vector; public class ReverseLinkedHashSet { public static void main(String args[]){ testSetConvertList(); testListConvertSet(); } static void testSetConvertList(){ Set<Integer> hashSet = new HashSet<Integer>(); Set<Integer> linkedHashSet = new LinkedHashSet<Integer>(); for(int i=1 ;i<20;i++){ hashSet.add(i); linkedHashSet.add(i); } System.out.println("hashSet: "+hashSet); System.out.println("linkedHashSet: "+linkedHashSet); List<Integer> hashSetList = new ArrayList<Integer>(hashSet); List<Integer> linkedHashSetList = new ArrayList<Integer>(linkedHashSet); System.out.println("hashSet轉list集合: "+hashSetList); System.out.println("linkedHashSet轉list集合: "+linkedHashSetList); Collections.reverse(linkedHashSetList); System.out.println("反轉排序linkedHashSetList集合: "+linkedHashSetList); } @SuppressWarnings("serial") static void testListConvertSet(){ List<Integer> vector = new Vector<Integer>(); List<Integer> linkedList = new LinkedList<Integer>(); List<Integer> dataList1 = new LinkedList<Integer>(){{add(1);add(2);add(2);add(4);add(5);}}; List<Integer> dataList2 = new LinkedList<Integer>(){{add(7);add(6);add(16);add(17);add(18);add(19);add(19);}}; List<Integer> dataList3 = new LinkedList<Integer>(){{add(11);add(12);add(13);add(14);add(15);}}; vector.addAll(dataList1); vector.addAll(dataList2); vector.addAll(dataList3); linkedList.addAll(dataList1); linkedList.addAll(dataList2); linkedList.addAll(dataList3); System.out.println("vector: "+vector); System.out.println("linkedList: "+linkedList); Collections.sort(vector); System.out.println("排序vector: "+vector); Collections.shuffle(vector); System.out.println("隨機排序vector: "+vector); Collections.sort(vector); System.out.println("排序vector: "+vector); Collections.reverse(vector); System.out.println("反轉排序vector: "+vector); Set<Integer> hashSet = new HashSet<Integer>(linkedList); Set<Integer> linkedSet = new LinkedHashSet<Integer>(linkedList); System.out.println("hashSet: "+hashSet); System.out.println("linkedSet: "+linkedSet); } }
