概述
集合可以看作一个容器;集合中的每个对象,可以很容易取出存放,还可以按照一定的顺序摆放
提到容器,不难想到数组,集合类和数组的不同之处是,数组的长度是固定的,集合的长度是可变
的,数组用来存放基本类型,数据集合用来存放对象的引用
关于集合类的继承关系如下图
collection接口
collection接口是层次结构中的根接口,构成collection的单位称为元素,collection接口通常不能直
接使用,但该接口提供了添加元素,删除元素,管理数据的方法,由于list接口和set接口都继承了
collection接口,因此这些方法对list集合和set集合是通用的
常用方法如下
package yi;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
public class Shnagpin {
public static void main(String[] args) {
Collection<String>list=new ArrayList<>();
list.add("《Java从入门到精通》");
list.add("《零基础学Java》");
list.add("《java精彩编程200例》");
Iterator<String>it=list.iterator();//创建迭代器
while(it.hasNext()) {//判断是否有下一个元素
System.out.println(it.next());
}
}
}
List接口的实现类
ArrayList:实现了可变的数组,允许保存所有元素,包括空元素;
可以根据索引位置进行快速的查找
缺点是向指定的索引位置插入对象或删除对象的速度较慢
LinkedList:采用链表结构保存对象;
这种结构的优点是便于向集合中插入和删除对象
但是使用查找的话会较慢
Map接口的实现类
HashSet:基于哈希表的Map接口的实现,允许使用null值和null键,但必须保证键的唯一性;
不保证映射顺序,不保证该顺序恒久不变
TreeSet :集合中的映射关系有一定的顺序,但在添加、输出、定位映射关系时。TreeMap比HashMap类性能要差,因为是按一定顺序排序的,所以不允许使用null值
我们一般全部打印都不会这样输出。不够直观,我们可以修改一下代码,使得是我们日常使用的样子