java集合,可以理解为一个“盛装“对象的容器,java容器分为两类:Collection(集合)和Map(映像)。Collection存放一组各自独立的对象,对于这个抽象的集合接口,还有两个重要的重要的子接口:List和Set。其中List存放的是一个有序的可重复的序列,而Set存放的是不可重复的序列。对于Map,你可以从字面看出,他要存放的是有映像关系的一组“键—值对“。由于内容很多,所以会采用一个叫做'连载'的方式呈现在大家面前,请在我的博客里查收。好的,说一下今天要介绍的集合类:主要是List和Set的常用实现类。
一、List集合组。特点:存入顺序和取出顺序一致,存储的元素可以重复。常用ArrayList、LinkedList。ArrayList使用一个数组来维护存储到其中的对象。常用的方法add()、remove()、set()、contains()分别对应的增、删、改、查的操作。LinkedList底层实现依赖于一个双向链表。基本操作与ArrayList非常相近。由于数组和链表的特点,所以ArrayList和Linkedlist适用的领域也有所差别,ArrayList比较适合频繁查询的情况,而LinkedList比较适合插入删除操作较多的情况。它们各自所包含的方法及方法的使用方式,参见API文档。
二、Set集合组。如果你希望你的集合中的元素不重复,可以选择这个集合组中的常用工具类来帮你解决。比较常用的有HashSet和TreeSet。HashSet底层依赖于哈希表,通过hashcode值和equals方法来判断是否重复。TreeSet底层使用二叉树来维持。依据compareTo方法,要求元素具有可比性。
比较可以有两种方式:
1.类实现( implments )Comparable接口,重写compareTo方法。
2.更灵活的方式:让TreeSet本身具有可比较性:构造中传入一个Comparator的对象,重写compare方法。
那么提到集合,还有一个不得不提的就是迭代器Iterator。用于集合元素的遍历(从集合中取出元素的过程)。由于集合类有很多,它们的便利方法也存在差异,所以使用迭代器,为遍历提供统一的方法,这样方便记忆与编程实现。详见API文档。