常有Map与Collection什么关系?
没什么关系,都是集合的顶层接口,没有直接关系。
Map体系没有实现Iterator接口。
Map体系的特殊结果,K,V存在。 K键唯一。
Map体系的常用实现类:
HashMap: 底层实现哈希表,允许Key值和Value值为null,线程不同步的。
TreeMap : 底层是二叉树,不允许key为null(因为TreeMap要排序,null不能排序),线程不同步,放入的元素需要具有可排序性。
还有一个HashTable(已经不使用了): 和HashMap的原理与使用几乎是一样的,但是是线程同步的,所以效率不高,而且不允许key值和value值为null.
值得一提的是 :
HashSet的底层实现是HashMap,将Set的值作为key存入HashMap,然后HashMap的Value值都存为同一个无关对象,就实现了HashSet,并且保证了数据唯一性,因为HashMap键值需要唯一。
TreeSet的底层实现是TreeMap,原理与方式与上相同。
hashMap和TreeMap虽然保证键唯一,但是如果有相同的键值进来,后来的值会覆盖上一次的值。
比如
map.put(1,"哈哈");
map.put(1,"呵呵");
那么取1结果是呵呵“。”
新闻热点
疑难解答