Map接口
Map接口简介
Map接口是一种双列集合,它的每个元素都包含一个键对象Key和值对象Value,键和值对象之间存在一种对应关系,称为映射。
Map集合中访问元素时,只要指定Key,就能找到对应的Value。如:每个人都有唯一的身份证号,通过身份证号可以查询到这个人的信息。
Map接口最常用的实现类:HashMap和TreeMap
HashMap集合
HashMap集合是Map接口的实现类,用于存储键值映射关系,但必须保证不出现重复的键。
遍历Map中所有的键值对
先遍历Map集合中所有的键,再根据键获取相应的值。
先获取集合中的所有的映射关系,然后从映射关系中取出键和值。
键相同,值覆盖
通过values()方法可以直接获取Map中存储所有值的Collection集合。
HashMap集合迭代出来元素的顺序和存入的顺序是不一致的。LinkedHashMap使用双向链表来维护内部元素的关系,使Map元素迭代的顺序与存入的顺序一致。
TreeMap集合
TreeMap集合是用来存储键值映射关系的,其中不允许出现重复的键。
TreeMap是通过二叉树的原理来保证键的唯一性,这个TreeSet集合存储的原理一样,因此TreeMap中所有的键是按照某种顺序排列的。
使用TreeMap集合时,也可以通过自定义比较器的方式对所有的键进行排序。
Properties集合
Hashtable是Map接口的一个实现类,它存取元素时速度很慢,基本上被HashMap类所取代。
Hashtable类有一个子类Properties在实际应用中非常重要,Properties主要用来存储字符串类型的键和值,在实际开发中,经常使用Properties集合来存取应用的配置项
如何选择集合类
Set内存放的元素不允许重复,List存放的元素有一定的顺序。
ArrayList随机查询性能好,LinkedList中间元素的插入与删除性能好 。
HashSet和TreeSet的区别:集合内元素是否排序 。
Map的应用主要在利用键/值对进行快速查询。
HashMap和TreeMap区别:集合内元素是否排序
Collections工具类
Collections工具类专门用来操作集合
Collections工具类位于java.util包中
Collections类中提供了大量的方法用于对集合中元素进行排序、查找和修改等操作
对List集合进行排序
查找、替换集合中的元素
集合中的异常
集合中的异常举例
ClassCastException
如何在编译时就检查出来,要使用泛型集合来解决问题。
List list = new ArrayList(); List.add(new Integer(5)); List.add(“aaaaa”); Iterator elements = list.iterator(); while( elements.hasNext() ){ Integer i=(Integer)elements.next() }