剛學Java不久的時候,接到一個電面,然后問了一些java的知識,比如說Java的編碼,Unicode等,但是最讓我蛋疼的是怎么嗎map轉為set,那個時候對集合用的很少,對集合不是特別了解,map還知道,set就蒙了,然后轉為set更蒙了,覺得應該有API提供吧,但是不知道怎么說。后來我一直下來再查這個問題,查到了,但是沒有實踐過,今天我就來一發代碼。
List轉Set
Set set = new HashSet(new ArrayList());
Set轉List
List list = new ArrayList(new HashSet());
數組轉為List
List arr = Arrays.asList("1", "2", "3"); //或者 String[] arr = {"1", "2"}; List list = Arrays.asList(arr);
數組轉為Set
int[] arr = { 1, 2, 3 }; Set set = new HashSet(Arrays.asList(arr));
Map的值轉化為List
List list = new ArrayList(map.values());
Map的值轉化為Set
Set set = new HashSet(map.values());
List轉數組
List list = Arrays.asList("a","b"); String[] arr = (String[])list.toArray(new String[list.size()]);
代碼
public class listsetmao { private static List<String> arrayList; private static Map<String, String> hashMap; private static Set<String> hashSet; private static String[] arr = {"11oneone","22twotwo"}; public static void main(String[] args) { /* * //list轉set initList(); Set<String> set = new * HashSet<String>(arrayList); * System.out.println("arrayList.toString()--->"+set.toString()); * System.out.println("set.toString()--->"+set.toString()); */ /* * //set轉list initSet(); List<String> list = new * ArrayList<String>(hashSet); * System.out.println("hashSet.toString()--->"+hashSet.toString()); * System.out.println("list.toString()--->"+list.toString()); */ /* // 數組轉為list List<String> list = Arrays.asList(arr); System.out.println("list.toString()--->"+list.toString()); */ /* //數組轉set Set set = new HashSet<>(Arrays.asList(arr)); System.out.println("set.toString()--->"+set.toString()); */ /* //map的值轉為list initMap(); List<String> list = new ArrayList<String>(hashMap.values()); System.out.println("list.toString()--->"+list.toString()); */ /* //map的值轉為set initMap(); Set<String> set = new HashSet<String>(hashMap.values()); System.out.println("set.toString()--->"+set.toString()); */ /* //map的key轉為set initMap(); Set<String> set = new HashSet<String>(hashMap.keySet()); System.out.println("set.toString()--->"+set.toString()); */ //list轉數組 initList(); String[] arr1 = (String[])arrayList.toArray(new String[arrayList.size()]); System.out.println("Arrays.toString(arr1)--->"+Arrays.toString(arr1)); } public static void initList() { arrayList = new ArrayList<String>(); arrayList.add("1"); arrayList.add("2"); arrayList.add("3"); arrayList.add("4"); } public static void initMap() { hashMap = new HashMap<String, String>(); hashMap.put("one", "one1"); hashMap.put("two", "two2"); hashMap.put("three", "three3"); } public static void initSet() { hashSet = new HashSet<String>(); hashSet.add("1one"); hashSet.add("2two"); hashSet.add("3three"); hashSet.add("4four"); hashSet.add("5five"); } }
我是天王蓋地虎的分割線
源代碼:http://pan.baidu.com/s/1dD1Qx01
listsetmap.zip
轉載請注明出處:http://www.cnblogs.com/yydcdut