集合:是数据的容器,可以存储不同的对象或参数(类型可自定),主要方法是增、删、改、查
一、接口Collection
Collection是一个接口,继承它的有List与Set 1、List :继承Collection(值可重复并有序)
ArrayList:是一个线性表,存储是连续的,线程不安全,速度快(增删快,改查慢)
Version: 是一个线性表,存储是连续的,线程安全,速度慢(增删快,改查慢)
LinkedList:是一个单链表(通过指针指向一个对象,存储地址不连续)(改查快,增删慢)
























2、Set :继承Collection(值不可重复--无序,一但值有重复,只能显示出一个,并且是最后出现的那个)
HashSet:
TreeSet:可以给一种类型的值,可自动排序



















3、List与Set 的通用方法:
add()、addAll()、remove()、removeAll()、iterator()、size().
4、通过构造子可以将一个集合类变为另一个集合类,只限于List与Set接口下的所有集合类:
List list = new ArrayList();
list.add(1);
list.add(2);
list.add(3);
Set set = new HashSet(list);
这里将集合类list转化为了set
二、Map接口:,Map是以键值存储,每个键名都是唯一,如有重复,后面的将把前面的给覆盖掉
Hashtable:线程安全,所有提供方法都实现了同步
HashMap:线程不安全,所有方法没有提供同步
在HashMap中,null可以作为键,这样的键只有一个;可以有一个或多个键所对应的值为null。当get()方法返回null值时,即可以表示HashMap中没有该键,也可以表示该键所对应的值为null。因此,在HashMap中不能由get()方法来判断HashMap中是否存在某个键,而应该用containsKey()方法来判断。



















三、算法Collections:提供了很多的静态方法,来辅助处理集合类,只针对List与Set
1、示例:









输出结果将是:[1, 2, 3, 5, 6]