java集合类学习小记

【List接口】:可变数组,允许保存所有类型元素,包括null,元素可重复,按添加顺序保存
【常用实现类】:建议用ArrayList
ArrayList:索引访问速度快(但插入和删除节点较慢)
LinkedList:链表结构,插入删除节点很快(但随机访问节点对象效率低)
【常用方法】:
boolean add(E e)
boolean remove(Object o)
int size()
E get(int index)
E set(int index,E)

【Set接口】:不按特定方式排序,元素不能重复
【常用实现类】:建议使用TreeSet
HashSet:由哈希表支持,实际是一个HashMap实例,不保证元素顺序恒久不变,允许null
TreeSet:遍历时自动按自然顺序递增排序,允许null
【常用方法】:
boolean add(E e)
boolean remove(Object o)
int size()
【TreeSet常用方法】:
E first():最小元素
E last():最大元素
Comparator comparator() : 返回排序用的比较器(自然序,则返回null)
SortedSet headSet(E to) : to(不含)前面的子集
SortedSet subSet(E from,E to) : 从from(含)到to(不含)的子集
SortedSet tailSet(E from) : from(含)后面的子集

由于TreeSet集合中的元素在插入时会自动调用元素的compareTo()方法进行排序,所以TreeSet集合中的

元素如果是基本类型,则无需实现Comparable接口【因为很多java中的类(包括所有基本类型)已经实现

了Comparable接口】,如果是自定义类型的对象,则该类型必须实现Comparable接口中的compareTo()方

法,这样通过add()方法插入到TreeSet集合后,才能保证自动排序时不会出现错误。

【Map接口】:提供key到value的唯一映射,不含相同的key,
【常用实现类】:建议使用HashMap,因为添加和删除映射的效率更高
TreeMap: 不允许null键
HashMap:基于哈希表的Map接口的实现,通过散列技术,用key产生的散列码作偏移量来决定存储对象在映

射中的位置,允许null值和null键,但必须保证键的唯一性
【常用方法】:
V get(Object key):返回指定键所映射的值;如果此映射不包含该键的映射关系,则返回 null
V put(K key,V value):将指定的值与此映射中的指定键关联。如果该映射以前包含此键的映射关系,那

么将用新值替换旧值,并返回该旧值,否则返回null【返回null也可能表示之前key映射指向null】
void putAll(Map m):将指定m的映射关系复制存储到调用者映射中
V remove(Object key):如果存在指定键的映射关系,则将其从此映射中移除,并返回关联该键的值,否

则返回null【返回null也可能表示之前key映射指向null】
int size():
boolean containsKey(Object key):如果此映射包含指定键的映射关系,则返回 true。
boolean containsValue(Object value):如果此映射将一个或多个键映射到指定值,则返回 true
Set keySet():返回此映射中包含的键的 Set 视图(保证键的唯一性)
Collection<V> values():返回此映射中包含的值的 Collection 视图

猜你喜欢

转载自blog.51cto.com/maplebb/2156261