配色: 字号:
part4-java常见的实现细节
2018-06-23 | 阅:  转:  |  分享 
  
常见Java集合的实现细节一Map与Set1.Map和Set的关系事实上map集合与Set结合有很多相似的地方,且两者可以相互扩展。下面是
map与set的集合框架图。显然从框架图中可以得知两者十分相似。两者之所以能够相互扩展,关键是Map集合中key的特点,key要求
不能重复且为无序,这一点正好与set集合中的元素特点一致,换句话说,Map中的key构成的集合本身就是set集合。因此Key-va
lue可以通过.keySet()方法来得到Key的set集合。若将Map集合中的键值对绑定到一起视为一个元素,那么此时的map集合
就是set集合。因此此时可以将set集合当成map集合来使用。当然这需要对key-value元素进行一定的处理。总之Map与Set
之间的关系是:Map到Set的转换;Set到Map的扩展;Map是Set的特例下面主要说明如何将set集合扩展为Map集合:为
了把Set扩展成Map,可以考虑新增定义一个SimpleEntry类,该类代表一个Key-value对;当Set集合的集合元素都是
SimpleEntry对象时,该Set集合就能被当成Map使用。事实上将Set扩展成map的本质过程就是(1)定义一个类继承Ent
ry类和Serializable类,该类表达的就是键值对(2)然后构建一个集合,将上面定义的那个类至于这个集合中。向set扩展成m
ap集合中添加元素,本质是HashSet集合在对该元素进行存储,首先所添加的键值对会被转换为我们自定义的那个类,然后将该类存储于我
们定义的扩展的集合中,本质上是将这个类存储在扩展集合所继承的HashSet()集合。
献花(0)
+1
(本文系实习生101首藏)