List特点:元素有放入顺序,元素可重复,用来处理序列
Map特点:元素按键值对存储,无放入顺序. key-value
Set特点:元素无放入顺序,元素不可重复(注意:元素虽然无放入顺序,但是元素在set中的位置是有该元素的HashCode决定的,其位置其实是固定的),用来处理集
Map接口有三个实现类:HashMap,HashTable,LinkeHashMap,SortedMap有一个实现类:TreeMap。
Map接口
1 | public interface Map<K,V> { |
接口entry,用于元素的操作
1 | interface Entry<K,V> { |
SortedMap 接口
SortedMap储存key有序的数据,要求key支持Comparable,或者可以被指定的Comparator接受.
SortedMap 提供了一些获取子集的方法:
subMap(K fromKey, K toKey) 可以获取某个范围的key的子集,
headMap(K toKey) 获取某个key之前的所有键值对(类型为Map.Entry)
tailMap(K fromKey) 获取某个key之后的所有键值对
firstKey() ,lastKey() 获取第一个或最后一个key(最大或最小)。
values() 方法返回所有value的collection,
keySet() 方法返回所有key的set(不可重复)
entrySet() 方法返回所有键值对的set
NavigableMap 接口
SortedMap提供了获取最大值与最小值的方法,但对于一个已经排序的数据集,除了最大值与最小值之外,我们可以对任何一个元素,找到比它小的值和比它大的值,还可以按照按照原有的顺序倒序排序等。NavigableMap就为我们提供了这些功能。
NavigableMap是SortedMap的子接口,是扩展了的sortedMap,方法 lowerEntry、floorEntry、ceilingEntry 和 higherEntry 分别返回与小于、小于等于、大于等于、大于给定键的键关联的 Map.Entry 对象,如果不存在这样的键,则返回 null。
类似地,方法 lowerKey、floorKey、ceilingKey 和 higherKey 只返回关联的键。所有这些方法是为查找条目而不是遍历条目而设计的。