集合
什么是集合?集合是用来存储数据的一类容器。可以理解为,集合是数组的进阶版。
对于普通数组,相信你肯定不陌生。普通数组的定义,取值,存储,对于程序开发人员来说,实在是不友好。例如:数组必须定义长度,必须预先定义类型,长度不可变,无论是新增元素还是删除元素都很麻烦。所幸,有集合可以替代普通数组。
集合的优势
相对于普通的数组,集合的优势在于:集合中封装了大量操作数据的方法,并且集合的长度可变。
下面放一个集合的架构图
该图中,红色的是接口,白色的是实现类。整个框架中有两个最上层的接口,分别是代表着单列集合的Collection和双列集合Map。
Collection接口
Collection下的方法
增:
boolean add(E e);添加一个数据到集合中boolean addAll(Collection<? extends E> c); 将一个集合数据添加到另外一个集合中
Collection<? extends E>:元素 是E本类或者继承的E,才能添加到另外一个集合中
/**
* 增:
* boolean add(E e);
* boolean addAll(Collection<? extends E> c);
*/
Collection<Integer> collection = new ArrayList<>();
System.out.println(collection.add(1));
Collection<Integer> collection2 = new ArrayList<>();
collection2.add(1);
collection2.add(2);
System.out.println(collection.addAll(collection2));
删:
boolean remove(Object obj);删除指定的元素
boolean removeAll(Collection<? extends E> c); 删除的是交集
void clear();清空的
/**
* 删:
* boolean remove(Object obj);
* boolean removeAll(Collection<? extends E> c);
* [a,b,c] [b, c, d]删除的是交集
* void clear();
*/
Collection<String> collection3 = new ArrayList<>();
collection3.add("孙悟空");
collection3.add("孙悟空1");
collection3.add("孙悟空2");
Collection<String> collection4 = new ArrayList<>();
collection4.add("孙悟空");
collection4.add("孙悟空1");
collection4.add("孙悟空2");
collection4.add("孙悟空3");
System.out.println(collection3.remove("孙悟空"));
System.out.println(collection4.removeAll(collection3));
collection4.clear();
System.out.println(collection4);
查:
int size(); 查看集合中元素的个数Object[] toArray(); 将集合转为Object类型数组
boolean contains(Object obj); 集合中是否包含这个元素 如果包含返回true
boolean containsAll(Collection<? extends E> c);一个集合是否另外一个集合 子集合
boolean isEmpty(); 判断集合是否为空
/**
* 查:
* int size();
* Object[] toArray();
*/
Collection<String> collection5 = new ArrayList<>();
collection5.add("孙悟空");
collection5.add("孙悟空1");
collection5.add("孙悟空2");
collection5.add("孙悟空3");
System.out.println(collection5.size());
for (Object c: collection5.toArray()) {
System.out.println(c);
}
/*
*
* boolean contains(Object obj);
* boolean containsAll(Collection<? extends E> c);
* boolean isEmpty();
*
*/
Collection<String> collection6 = new ArrayList<>();
collection6.add("孙悟空");
collection6.add("孙悟空1");
collection6.add("孙悟空2");
collection6.add("孙悟空3");
Collection<String> collection7 = new ArrayList<>();
collection7.add("孙悟空3");
System.out.println(collection6.contains("孙悟空"));
System.out.println(collection6.containsAll(collection7));
System.out.println(collection7.isEmpty());