http://www.kuqin.com/shuoit/20151105/348790.html
Set:类似集合,无序,且不可重复
HashSet:使用散列表进行存储,对于添加和删除元素比ArrayList快
TreeSet:是一个有序集,具有一个传入构造方法的构造函数
List:可重复,有序,可根据index对数据进行操作
可用for(类型 变量:list)进行遍历
ArrayList:可以看做动态数组
LinkedList:链表结构的List,可对头、尾进行操作
Map:关键字是唯一标识,不可重复,可按关键字进行操作,数据可重复
HashMap
TreeMap:按排序顺序(升序)存储关键字/值对,允许快速检索。
迭代器Iterator:for(Iterator i=list.iterator();i.hasNext();)可用于遍历容器,i.next()可表示遍历到的容器中的下一个元素
ListIterator:比Iterator功能更强大,主要表现在:1.可以实现逆序的遍历 hasPrevious();previous();
2.有add()方法,可以向容器中添加元素
3.可以定位当前索引位置
4.对当前对象的修改set()
注意:使用previous时应注意游标的位置
Comparable(对象内部)和Comparator区别:http://blog.csdn.net/mageshuai/article/details/3849143
两者都用于容器内对象的排序,可以在构建容器时作为参数传递,也可以使用Collections.sort
或Arrays.sort调用开始排序
Comparable 是一个对象本身就已经支持自比较所需要实现的接口,即容器装的对象的类中实现
Comparator 是一个专用的比较器,当这个对象不支持自比较或者自比较函数不能满足你的要求时,你可以写一个比较器来完成两个对象之间大 小的比较。即使用时需要另外定义一个类来实现接口。你想对整数采用绝对值大小来排序,Integer 是不符合要求的,你不需要去修改 Integer 类
(实际上你也不能这么做)去改变它的排序行为,只要使用一个实现了 Comparator 接口的对象来实现控制它的排序就行了。