package cn.vicky.unit; import java.util.ArrayList; import java.util.Arrays; import java.util.HashMap; import java.util.HashSet; import java.util.List; import java.util.Map; import java.util.Set; public class ArrayTest { public static void main(String[] args) { // Array -> Array String[] s = { "1", "2", "3", "4", "5", "5" }; String[] news = new String[s.length - 1]; System.arraycopy(s, 1, news, 0, news.length); for (int i = 0; i < news.length; i++) { System.out.println(news[i]); } System.out.println("--------------------------------------"); // Array -> List List newList = Arrays.asList(news); // newList.add("6"); // 这样获取的List无法add对象 System.out.println(newList); System.out.println("--------------------------------------"); // Array -> Set Set newSet = new HashSet(Arrays.asList(news)); System.out.println(newSet); System.out.println("--------------------------------------"); List<String> list = new ArrayList<String>(); list.add("1"); list.add("2"); list.add("3"); list.add("4"); list.add("5"); // System.arraycopy(list, 1, news, 0, news.length); 抛: java.lang.ArrayStoreException news = list.toArray(new String[list.size()]); for (int i = 0; i < news.length; i++) { System.out.println(news[i]); } System.out.println("--------------------------------------"); Set<String> set = new HashSet<String>(); // set无法保存数组的顺序 set.add("1"); set.add("2"); set.add("3"); set.add("4"); set.add("5"); set.add("5"); // 重复 set.add("5"); // 重复 // System.arraycopy(set, 1, news, 0, news.length); 抛: java.lang.ArrayStoreException news = set.toArray(new String[set.size()]); for (int i = 0; i < news.length; i++) { System.out.println(news[i]); } System.out.println("--------------------------------------"); // set -> List List list2 = new ArrayList(set); list2.add("6"); list2.add("6"); // 重复 System.out.println(list2); System.out.println("--------------------------------------"); // List -> Set Set set2 = new HashSet(list2); // 自动删除重复的 set2.add("7"); System.out.println(set2); System.out.println("--------------------------------------"); // Map Map<String, String> map = new HashMap<String, String>(); map.put("k-1", "v-1"); map.put("k-2", "v-2"); map.put("k-3", "v-3"); map.put("k-4", "v-4"); map.put("k-5", "v-5"); System.out.println(map.keySet()); // 与加入数据顺序相反 System.out.println(map.values()); System.out.println(map.entrySet()); } } 打印: 2 3 4 5 5 -------------------------------------- [2, 3, 4, 5, 5] -------------------------------------- [3, 2, 5, 4] -------------------------------------- 1 2 3 4 5 -------------------------------------- 3 2 1 5 4 -------------------------------------- [3, 2, 1, 5, 4, 6, 6] -------------------------------------- [3, 2, 1, 7, 6, 5, 4] -------------------------------------- [k-5, k-4, k-3, k-2, k-1] [v-5, v-4, v-3, v-2, v-1] [k-5=v-5, k-4=v-4, k-3=v-3, k-2=v-2, k-1=v-1]