字面意思:地图,映射的意思,用于存储一对一对的数据信息
比如:身份证号–姓名 key–value 键值对
特点:key 要唯一,value可以重复
map集合的遍历的方式1:
map集合的遍历方式2:
HashMap:
使用哈希表算法,保证key的唯一。当存储自定义对象作为key时,如果元素要唯一,要重写hashCode和equals方法。HashSet实现原理依赖于HashMap.允许存储null作为键和值。
线程不安全对象,此外与HashTable用法相同,但是Hashtable不能存储null。
Hashtable:
LinkedHashMap:
是HashMap的子类对象,两者区别是:LinkedHashMap能保证迭代顺序(存和取一致),原因是底层采用了链表+哈希表的方式实现。HashMap不能保证迭代顺序恒久不变,因此仅是采用哈希表算法。此外两者用法相同。
TreeMap:
key可以按照自然顺序排序,或根据传递的比较器Comparator进行排序,具体按照哪种方式排序,看调用的构造方法。能进行排序是因为:key使用二叉树算法。
TreeSet实现原理依赖于TreeMap,即就是TreeMap的key部分存储到Set中。
以上按照key的长度排序,排序一样不显示,想要显示需在重写的compare方法中增加逻辑语句,
比如:if(s1.length()-s2.length()==0) {
return s1.compareTo(s2);
}