Java集合框架学习


Java集合框架学习
集合接口:6个接口(短虚线表示),表示不同集合类型,是集合框架的基础。

Collection List Set Map Iterator ListIterator

抽象类:5个抽象类(长虚线表示),对集合接口的部分实现。可扩展为自定义集合类。
实现类:8个实现类(实线表示),对接口的具体实现。

ArrayList LinkedList HashSet LinkedHashSet TreeSet HashMap TreeMap

 

1. Collection接口

增加,删除 boolean add/reomve(Obj) boolean clear()

查询 int size(), boolean is empty(), boolean contains(Obj), Iterator iterator()

转换 Obj toArray()

 

1.1 List接口

void add(int index, Obj element)

Obj get(int index)

int indexOf(Obj element)

int lastIndexOf(Obj element)

Obj remove(int index)

Obj set(int index, Obj element) 返回旧元素

List subList(int fromIndex, int toIndex)

 

1.1.1 LinkedList类(常用做堆栈)

void addFirst(Obj element), Void addLast(Obj element)

Obj getFirst(), Obj getLast()

Obj removeFirst(), Obj removeLast()

LinkedList(Collection c)

 

1.1.2 ArrayList类

int size()

boolean isEmpty

boolean remove(Obj element)

boolean contains(Obj element)

Obj[] toArray()

其余同List

 

1.2 Set接口

boolean add(element Obj)

boolean contains(element Obj)

boolean remove(element Obj)

Obj[] toArray()

 

1.2.1 HashSet/TreeSet类

HashSet(Collection c) TreeSet(Collection c)

 

 

2. Map接口

增加,删除 Obj put(Obj key, Obj value), Obj remove(Obj key), void clear()

查询 int size(), boolean is empty(), Obj get(Obj key), boolean containsKey(Obj key), boolean containsValue(Obj value)

视图操作 Set keySet(), Collection values(), Set entrySet() 返回Map.Entry对象集

             Map.Entry 接口 Obj getValue(); Obj getKey()

 

2.1 HashMap/TreeMap类

 

3. Iterator接口

boolean hasNext(); Obj next(); void remove()

3.1 ListIterator 接口

增加,修改 void add(Obj)增加到当前光标之前,可用previous访问

                void set(Obj)代替光标之前的元素

                void remove()

查询 boolean hasPrevious(); Obj previous(); boolean hasNext(); Obj next()

 

package example;
import java.util.*;

public class TestCollection {
	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		ArrayList dateList = new ArrayList();
		dateList.add(new Date());
		dateList.add(new Date());
		Iterator dateIterator=dateList.iterator();
		while(dateIterator.hasNext()){
			System.out.println(dateIterator.next());
		}
		LinkedList testList = new LinkedList(dateList);
		testList.addFirst("first");
		testList.addLast("first");
		testList.add(3,"last");
		dateIterator=testList.iterator();
		while(dateIterator.hasNext()){
			System.out.println(dateIterator.next());
		}

	}

}