java集合类定义主要在java.util.*报下面。主要定义了三大接口。
java.util.Set接口及其子类
java.uitl.List接口及其子类
java.util.Map接口及其子类
后来还添加了Queue接口及其子类
Set提供的是一个无序的集合。而List提供的是一个有序的集合。Map则是有一个对应关系的集合。
Set集合是无序的,就是说它的对象不按特定的方式排序,只是把对象加入集合中。集合中的成员是通过对象的引用访问到的,所以Set集合中也就不能有重复对象,而且不能通过索引取得Set中的元素,需通过对象得到Iterator迭代器来遍历集合。迭代器也就相当于是一个容器。
还有,set中元素不能重复,如果使用add(Object obj)方法添加已经存在的对象,则会覆盖前面的对象
不同于Set集合,List提供的是一个有序的集合。相当于按照什么顺序存放元素,就能根据相应顺序得到该元素。
List中可以有相同的元素
List中可以有null元素
基于Array的List(Vector,ArrayList)适合查询,而LinkedList 适合添加,删除操作。
而Map集合,存放的是两种有着对应关系的对象。就像数学中的函数,一个x值对应一个f(x)值。而且每个不同的x只能有一个f(x)与之对应,但f(x)可以有多个x与之对应。这里的x就是:Key(键),f(x)就是:Value(Key对应的值)。集合中的键不能重复。存储时会根据键进行判断。如果已有与Key关联的对象,则原对象被新放入的对象代替。