集合
Collection和Map
Collection的继承接口有List序列、Queue队列、Set集。序列和队列有序允许重复,集里的元素无序不允许重复。
List实现类有ArrayList和LinkedList。Queue实现类有LinkedList。Set实现类有HashSet。
Map的实现类有HashMap。
List概述
- List是元素有序并且可以重复的集合,成为序列。
- List可以精确的控制每个元素的插入位置,或删除某个位置的元素。
- List的两个主要实现类是ArrayList和LinkedList。
ArrayList底层是由数组实现,动态增长,以满足应用程序的要求,在列表尾部插入或删除数据非常有效,更适合查找和更新元素,ArrayList中的元素可以为null。
ArrayList方法
返回的类型 | 方法和描述 |
---|---|
boolean | add(E e) 添加特殊的元素到序列的尾部 |
void | add(int index,E element) 在index处插入一个特殊的元素 |
void | clear() 删除序列中所有的元素 |
boolean | contains(Object o) 如果包含元素o则返回true,否则返回false |
E | get(int index) 返回当前索引处的元素 |
int | indexOf(Object o) 返回此列表中指定元素第一次出现的索引,如果此列表不包含该元素,则返回-1。 |
boolean | isEmpty() 如果序列中没有元素则返回true,否则返回false |
E | remove(int index) 返回序列中特殊位置的元素 |
boolean | remove(Object o) 从列表中删除指定元素的第一个匹配项(如果存在)。 |
E | set() 用指定的元素替换此列表中指定位置的元素。 |
int | size() 返回在序列中元素的个数 |
void | sort(Comparator<? super E>c) 根据指定比较器产生的顺序对该列表进行排序。 |
Object[] | toArray() 返回一个数组,该数组按正确的顺序(从第一个元素到最后一个元素)包含此列表中的所有元素。 |
LinkedList
方法名 | 说明 |
---|---|
LinkedList() | 构造一个空列表 |
LinkedList(Collection<? extends E>c) | 构造一个包含指定collection中的元素的列表,这些元素按其collection的迭代器返回的顺序排列 |
返回的类型 | 方法和描述 |
---|---|
boolean | add(E e) 将指定元素添加到此列表的结尾 |
void | add(int index,E element) 在此列表中指定的位置插入的指定的元素 |
boolean | addAll(Collection<? extends E> c) 添加指定collection中的所有元素到此列表的结尾 |
boolean | addAll(int index,Collection<? extends E>c) 添加指定collection中的所有元素到此列表的结尾 |
void | addFirst(E e) 将指定元素插入此列表的开头 |
void | addLast(E e) 将指定元素添加到此列表的结尾 |
void | clear() 从此列表中移除所有元素 |
E | get(int index) 返回此列表中指定位置处的元素 |
int | indexOf(Object o) 返回此列表中首次出现的指定元素的索引,如果此列表中不包含该元素,则返回-1 |
E | remove() 获取并移除此列表的头(第一个元素) |
E | remove(int index) 移除此列表中指定位置处的元素 |
boolean | remove(Object o) 从此列表中移除首次出现的指定元素(如果存在) |
Object[] | toArray() 返回以适当顺序(从第一个元素到最后一个元素)包含此列表中所有元素的数组 |
Set概述
Set是元素无序并且不可以重复的集合,被称为集。
HashSet
- HashSet是Set的一个重要实现类,称为哈希集。
- HashSet中的元素无序并且不可重复
- HashSet中只允许一个null元素
- 具有良好的存取和查找性能。
返回类型 | 方法和描述 |
---|---|
boolean | add(E e) 在这个集合中添加一个具体的元素,如果不存在则返回true。 |
boolean | addAll(Collection<? extends E> c) 如果指定集合中的所有元素尚不存在,则将它们添加到此集合(可选操作)。 |
void | clear() 从此集中中移除所有元素 |
boolean | contains(Object o) 如果此集合存在这个具体的元素则返回true |
int | hasCode() 返回该集合的哈希值 |
boolean | isEmpty() 如果该集合没有元素存在则返回true |
Iterator | iterator() 返回此集合中元素的迭代器。 |
boolean | remove(Object o) 如果存在,从该集合中移除具体的元素 |
boolean | removeAll(Collection<?> c) 从该集合中移除包含在指定集合中的所有元素(可选操作) |
int | size() 返回该集合中元素的数量 |
Object[] | toArray() 返回包含此集中所有元素的数组。 |
Iterator迭代器
- Iterator接口可以以统一的方式对各种集合元素进行遍历
- hasNext()方法检测集合中是否还有下一个元素
- next()方法返回集合中的下一个元素
Map
- Map中的数据是以键值对(key-value)的形式存储的
- key-value以Entry类型的对象实例存在
- 可以通过key值快速地查找value
- 一个映射不能包含重复地键
- 每个键最多只能映射一个值
HashMap
- 基于哈希表的Map接口的实现
- 允许使用null值和null键
- key值不允许重复
- HashMap中的Entry对象是无序排列的
返回的类型 | 方法和描述 |
---|---|
void | clear() 从此映射中删除所有映射。 |
boolean | containsKey(Object key) 如果此map包含了对于具体的映射则返回true |
boolean | containsValue(Object value) 如果此映射将一个或多个键映射到指定值,则返回true。 |
Set<Map.Entry<K,V>> | entrySet() 返回此映射中包含的映射的集合视图 |
V | get(Object key) 返回该键对应的值如果该map不包含该键对应的值则返回null |
boolean | isEmpty() 如果map中不存在键值映射了,则返回true |
Set | keySet() 返回此键值映射的包含键的Set视图 |
V | put(K key,V value) 将指定值与此映射中的指定键相关联。 |
V | remove(Object key) 从该映射中移除指定键的映射(如果存在) |
boolean | remove(Object key,Object value) 仅当指定项当前映射到指定值时,才删除该项。 |
int | size() 返回映射的键值对的数量 |
Collection | values() 返回此映射中包含的值的集合视图。 |