集合框架listIterator() //返回此列表元素的列表迭代器(按适当顺序)。listIterator(int index) //返回列表中元素的列表迭代器(按适当顺序),从列表的指定位置开始。

Collection接口中有三个子接口(List,Set,Queue)

Collection中的方法:

 
addAll(Collection c)
addAll(int index, Collection c) 
clear() contains(Object o) 
containsAll(Collection c) 
isEmpty() iterator() remove(Object o) 
removeAll(Collection c) 
retainAll(Collection c) 
size() toArray() 
toArray(T[] a) 

List中的特有方法:

listIterator() //返回此列表元素的列表迭代器(按适当顺序)。
listIterator(int index) //返回列表中元素的列表迭代器(按适当顺序),从列表的指定位置开始。
subList(int fromIndex, int toIndex) 
get(int index) set(int index, E element) 
indexOf(Object o) add(int index, E element) 
lastIndexOf(Object o) remove(int index) 

List接口的实现类:

1.ArrayList底层是动态数组数据结构,是不同步的。查找较LinkedList快。

2.LinkedList底层是双链表数据结构,是不同步的。增加和删除元素较ArrayList快。

3.Vector底层也是动态数组,是同步的,效率较低。

Queue接口的实现类:

LinkedList->实现了Queue中的方法:offer后进,poll从头出(移除)。peek方法查看头并不移除。

Queue接口的子接口Deque的实现类:

LinkedList->实现了Deque中方法:offerFirst从头进,offerLast从尾进,pollFirst移除头,pollLast移除尾,peekFirst查看头并不移除,peekLast查看尾并不移除,(类似栈操作)->pop移除尾,push从头进。所以模拟栈结构时,应当用Deque声明。

Set接口实现类:

1.HashSet

它不保证 set 的迭代顺序;特别是它不保证该顺序恒久不变。此类允许使用 null 元素。存入此集合的元素应当重写hashCode()和equals()方法。该集合对象在判断元素的唯一性时,使用hashCode()的返回值,当且仅当hashCode()返回值与该集合中已存在的某个元素hashcode值相同时,才使用equals()方法判断是否内容相同。存入该集合中的元素位置不随该元素内容的改变而改变,因此需要注意存入该集合中的元素不应改变该元素成员变量的值。

2.LinkedHashSet

具有可预知迭代顺序的 Set 接口的哈希表和链接列表实现。此实现与 HashSet 的不同之外在于,后者维护着一个运行于所有条目的双重链接列表。此链接列表定义了迭代顺序,即按照将元素插入到 set 中的顺序(插入顺序)进行迭代。注意,插入顺序 受在 set 中重新插入的 元素的影响。(如果在 s.contains(e) 返回 true 后立即调用 s.add(e),则元素 e 会被重新插入到 set s 中。)

3.TreeSet

基于 TreeMap的 NavigableSet 实现。使用元素的自然顺序(使用元素自己的compareTo()方法)对元素进行排序,或者根据创建 set 时提供的 Comparator 进行排序,具体取决于使用的构造方法。用此集合存放元素时,元素可以实现Comparable接口或者往构造器中传入比较器对象。

Map接口实现类有HashMap,TreeMap,HashTable。

1.HashMap:

基于哈希表的 Map 接口的实现。此实现提供所有可选的映射操作,并允许使用 null 值和 null 键。

2.HashTable

此类实现一个哈希表,该哈希表将键映射到相应的值。任何非 null 对象都可以用作键或值。Hashtable是同步的。 如果不需要线程安全的实现,建议使用HashMap代替HashTable。HashTable下有个子类叫Properties。

3.TreeMap:

基于红黑树(Red-Black tree)的NavigableMap 实现。该映射根据其键的自然顺序进行排序,或者根据创建映射时提供的 Comparator进行排序,具体取决于使用的构造方法。用此集合存放元素时,key元素可以实现Comparable接口或者往构造器中传入比较器对象。

HashTable有个子类Properties

Properties 类表示了一个持久的属性集。Properties 可保存在流中或从流中加载。属性列表中每个键及其对应值都是一个字符串。所以创建Properties对象时没有泛型。

 

你可能感兴趣的:(java)