Map集合的功能概述
a:添加功能 * V put(K key,V value):添加元素。
* 如果键是第一次存储,就直接存储元素,返回null * 如果键不是第一次存在,就用值把以前的值替换掉,返回以前的值
b:删除功能
* void clear():移除所有的键值对元素
* V remove(Object key):根据键删除键值对元素,并把值返回
c:判断功能
* boolean containsKey(Object key):判断集合是否包含指定的键
* boolean containsValue(Object value):判断集合是否包含指定的值
* boolean isEmpty():判断集合是否为空
d:获取功能
* Set<Map.Entry<K,V>> entrySet():
* V get(Object key):根据键获取值
* Set<K> keySet():获取集合中所有键的集合
* Collection<V> values():获取集合中所有值的集合
e:长度功能
* int size():返回集合中的键值对的个数
Map 的内部接口 Entry
Set<Map.Entry<K,V>> NAME = map.entrySet();
entrySet() 方法返回该map包含的映射Set视图HashMap
要重写 hashcode 和 equal 方法
TreeMap
LinkedHashMap
Collections 工具类
public static <T> void sort(List<T> list)
public static <T> int binarySearch(List<?> list,T key)
public static <T> T max(Collection<?> coll)
public static void reverse(List<?> list)
public static void shuffle(List<?> list)
Collections 类 所有的方法都是静态方法,可以直接通过 类名.方法 调用方法
eg: 要对list排序,调用如下
Collections.sort(list)
HashMap和Hashtable的区别
-
Hashtable是JDK1.0版本出现的,是线程安全的,效率低,HashMap是JDK1.2版本出现的,是线程不安全的,效率高
-
Hashtable不可以存储null键和null值,HashMap可以存储null键和null值
泛型固定下边界
? super E
泛型固定上边界
? extends E