java之Map和Collection
java中保存对象的容器可分为两类:
1、Map。Map是以键值对的形式来保存一组对象,可以通过键来查找值。
2、Collection。用来保存独立对象的序列。Collection又可分为三种类型:
(1)List。按照插入的顺序保存对象。
(2)Set。无序,不能有重复元素。
(3)Queue。按照特定规则确定对象顺序,通常就是它们被插入时的顺序,也可根据具体需求设置优先级。
Map:
Map的常用方法
boolean containsKey(Object key) | 是否包含键key,是则返回 true。 |
boolean containsValue(Object value) | 是否包含值value,是则返回 true。 |
boolean isEmpty() | 如果此映射未包含键-值映射关系,则返回 true。 |
V put(K key, V value) | 插入键值对。若key已存在,返回value;否则,返回null。 |
void putAll(Map<? extends K,? extends V> m) | 将另一个Map对象复制到到此对象中。 |
V remove(Object key) | 根据key移除键值对,返回被删的值,若不存怎返回null。 |
void clear() | 清空所有key-value对。 |
V get(Object key) | 通过key查找value并返回,若无,则返回null。 |
int size() | 返回key-value对数量。 |
Set<Map.Entry<K,V>> entrySet() | 返回键值对的Set集。 |
Set<K> keySet() | 返回的key的Set集。 |
Collection<V> values() | 返回value的Collection集。 |
map是一种把key和value进行关联的容器,把key的哈希码作为索引,可以根据这个索引获取保存的值。但是,不同的key可以对应相同的value。
在这里,hash码决定了储存位置。关于java中是如何设置一个对象的哈希值的,可以参考我的另一篇随笔java中的hashCode()方法。
Map有两个常用的实现类HashMap和LinkedHashMap,这两个类的使用在我的另一篇随笔java之Map的使用中有较为详细的讲解。
Collection:
Collection的常用方法
int size() | 返回元素个数 |
boolean add(E e) | 添加元素,添加成功返回true |
boolean addAll(Collection<? extends E> c) | 将c中的所有元素添加到此对象中 |
void clear() | 移除此 collection 中的所有元素 |
boolean contains(Object o) | 若包含元素o,则返回 true |
boolean containsAll(Collection<?> c) | 若包含c 中的所有元素,则返回 true |
boolean isEmpty() | 若不包含元素,则返回 true |
Iterator<E> iterator() | 返回迭代器 |
boolean remove(Object o) | 移除元素o。若有元素被移除,返回true |
boolean removeAll(Collection<?> c) | 移除c中包含的所有元素,有改变即返回true |
boolean retainAll(Collection<?> c) | 仅保留c中包含的元素,有改即返回true |