Java程序员的日常 —— 《编程思想》持有对象
集合框架可以说是Java里面必备的知识点了,日常的使用中也会遇到各种情况需要使用到集合。下面就简单介绍下各种集合的使用场景:
List
List可以看做是数组,实现的方式有两种:
- ArrayList 适合随机访问
- LinkedList 适合做插入删除操作
Queue和Stack
这两种数据结构都可以通过LinkedList来实现
Map
Map用于保存键值对,常用的实现方式有:
- HashMap 使用散列表实现
- TreeMap 基于红黑树,保证键的排序
- LinkedHashMap 基于链表的哈希,能保证插入的顺序性
Set
与Map相比,set不接受重复的值
实现的方式与Map类似。
工具类
其实就俩,Collections以及Arrays,有空就需要看看。
技巧
首先可以通过iterator遍历列表以及map。用户也可以自己定义iterator实现倒序遍历。
如:
class ReversibleArrayList<T> extends ArrayList<T>{
public ReversibleArrayList(Collection<T> c){
super(c);
}
public Iterable<T> reversed(){
return new Iterable<T>() {
public Iterator<T> iterator(){
return new Iterator<T>(){
int current = size() -1 ;
public boolean hasNext(){
return current > -1;
}
public T next(){
return get(current--);
}
public void remove(){
throw new UnsupportedOperationException();
}
};
}
};
}
}