java学习记录之路
集合框架中的视图与包装器,接着上篇博客继续说。。。
http://blog.csdn.net/pacosonswjtu/article/details/50333509
首先我参考了上面这篇博客。里面介绍了视图的分类以及包装器。下面我补充一下里面没有的知识点。
先说对视图的理解:
java中的视图,可以说其实就是一个具有限制的集合对象,只不过这里的不是集合对象,而是一个视图对象。
集合视图就是把集合里面的东西给你展示出来。然后功能没有原始集合多。
是查看集合中部分或者全部数据的窗口。
对原集合的一层包装 ,不同的集合视图有不同的用途,有的是只读有的是同步的。针对视图的操作会影响到集合的数据。
介绍映射视图
映射有三种视图,键集,值集合,以及键/值对集。
java.util.Map
Set<K> keySet()
//返回映射中所有键的一个视图集。可以从这个集中删除元素,键和相关联的值将从映射中删除,但是不能增加任何元素。
Collection<V> values()
//返回映射中所有值的一个视图集。可以从这个集中删除元素,键和相关联的值将从映射中删除,但是不能增加任何元素
Set<Map.Entry<K,V>> entrySet()
//返回Map.Entry对象的一个视图集。可以从这个集中删除元素,它们将从映射中删除,但是不能增加任何元素。
java.util.Map.entry
boolean equals(Object o)
//Compares the specified object with this entry for equality.
K getKey()
//Returns the key corresponding to this entry.
V getValue()
//Returns the value corresponding to this entry.
int hashCode()
//Returns the hash code value for this map entry.
V setValue(V value)
//将相关映射中的值改为新值,并返回原来的值。
我直接给出了api,首先要明白调用keySet(),返回的不是set集合,而是一个实现了Set接口的视图对象,不是集合对象。因为 Set扩展了Collection接口,所以可以像使用集合一样使用keySet