1、Set 不允许重复,List允许重复 
2、Set 没有顺序,List有顺序 

List接口对Collection进行了简单的扩充,
它的具体实现类常用的有ArrayList和 edList。
你可以将任何东西放到一个List容器中,
并在需要时从中取出。
ArrayList从其命名中可以看出
它是一种类似数组的形式进行存储,
因此它的随机访问速度极快,
而 edList的内部实现是链表,
它适合于在链表中间
需要频繁进行插入和删除操作。
在具体应用时可以根据需要自由选择。
前面说的Iterator只能对容器进行向前遍历,
而ListIterator则继承了Iterator的思想,
并提供了对List进行双向遍历的方法。 

Set接口也是Collection的一种扩展,
而与List不同的时,
在Set中的对象元素不能重复,
也就是说你不能把同样的东西
两次放入同一个Set容器中。
它的常用具体实现有HashSet和TreeSet类。
HashSet能快速定位一个元素,
但是你放到HashSet中的对象
需要实现hashCode()方法,
它使用了前面说过的哈希码的算法。
而TreeSet则将放入
其中的元素按序存放,
这就要求你放入
其中的对象是可排序的,
这就用到了集合框架提供的
另外两个实用类Comparable和Comparator。
一个类是可排序的,
它就应该实现Comparable接口。
有时多个类具有相同的排序算法,
那就不需要在每分别重复定义
相同的排序算法,
只要实现Comparator接口即可。
集合框架中还有两个很实用的公用类:
Collections和Arrays。
Collections提供了对一个Collection容器
进行诸如排序、复制、查找和填充等
一些非常有用的方法,
Arrays则是对一个数组进行类似的操作。 
收藏 打印