1. Map
1.1 特点:无序、以键值对的形式添加元素,键不能重复,值可以重复
它没有继承Collection接口
结果图:
1.2 遍历
1.2.1 先取出保存所有键的Set,再遍历Set即可(2种)
1.2.2 先取出保存所有Entry的Set,再遍历此Set即可 (重要点)
结果图:
2.HashMap与HashTable之间的区别
同步既排队 线程安全的 hashtable 键不可以为null,值也不能为null
异步 非安全的 hashmap 键可以为null,值也可以为null
3. 其它
3.1 Collections:工具类,提供一组静态方法操作Collection集合
3.2 Arrays:工具类,提供了一组静态方法操作数组
找出Collections中常用的五个方法的作用
1.常用方法
public static boolean equals(int[] a, int[] a2) 判断两个数组是否相等
public static String toString(int[] a) 输出数组信息
public static void fill(int[] a, int val) 将指定值填充到数组之中
public static void sort(int[] a) 将数组进行排序
public static int binarySearch(int[] a, int key) 对排序后的数组进行二分法检索指定的值
Map集合3层嵌套使用(2Map+1List)
List<Student>
Map<String,List>
Map<String,Map>
//初中部
List<Stu> ls=new ArrayList<>();
ls.add(new Stu("张晓东",90));
ls.add(new Stu("张晓西",75));
List<Stu> ls2=new ArrayList<>();
ls2.add(new Stu("张晓北",80));
ls2.add(new Stu("张晓南",82));
//高中部
List<Stu> ls3=new ArrayList<>();
ls3.add(new Stu("张三",90));
ls3.add(new Stu("李四",100));
List<Stu> ls4=new ArrayList<>();
ls4.add(new Stu("小王",70));
ls4.add(new Stu("老六",100));
List<Stu> ls5=new ArrayList<>();
ls5.add(new Stu("老八",70));
ls5.add(new Stu("小九",100));
//大学部
List<Stu> ls6=new ArrayList<>();
ls6.add(new Stu("可乐",60));
ls6.add(new Stu("雪碧",50));
List<Stu> ls7=new ArrayList<>();
ls7.add(new Stu("娃哈哈",90));
ls7.add(new Stu("老干妈",80));
Map<String, List<Stu>> map=new HashMap<String, List<Stu>>();
map.put("T110", ls);
map.put("T111", ls2);
Map<String, List<Stu>> map2=new HashMap<String, List<Stu>>();
map2.put("T206", ls3);
map2.put("T222", ls4);
map2.put("T208", ls5);
Map<String, List<Stu>> map3=new HashMap<String, List<Stu>>();
map3.put("T230", ls6);
map3.put("T231", ls7);
Map<String, Map<String, List<Stu>>> x=new HashMap<String, Map<String, List<Stu>>>();
x.put("卓京初中部", map);
x.put("卓京高中部", map2);
x.put("卓京大学部", map3);
Set<String> keySet = x.keySet();
for (String m : keySet) {
Map<String, List<Stu>> map4 = x.get(m);
System.out.println(m);
Set<String> keySet2 = map4.keySet();
for (String m2 : keySet2) {
List<Stu> ls8 = map4.get(m2);
System.out.println(" "+m2);
for (Stu l : ls8) {
System.out.println(" "+l);
}
}
}
结果如下: