集合是java中提供的一种容器,可以用来存储多个数据。
集合和数组既然都是容器,他们有什么区别呢?
数组的长度是固定的。集合的长度是可变的。
数组中存储的是同一类型的元素,可以存储任意类型的数据。集合存储的都是引用数据类型。如果想存储基本类型数据需要存储对应的包装类型。
Collection存储元素特点是无序,可重复
有序:可以通过索引获取元素,就是有序
集合类的继承体系
Collection:单列集合类的根接口,用于存储一系列符合某种规则的元素,它有两个重要的子接口,分别是java.util.List和java.util.Set。其中,List的特点是元素有序、元素可重复。Set的特点是元素不可重复。List接口的主要实现类有java.util.ArrayList和java.util.LinkedList,Set接口的主要实现类有java.util.HashSet和java.util.LinkedHashSet。
这张图只是我们常用的集合有这些
集合本身是一个工具,它存放在java.util包中。在Collection接口定义这单列集合框架中最最共性的内容。
Collection接口方法
Collection是所有单列集合的父接口,因此在Collection中定义了单列集合(List和Set)通用的一些方法,这些方法可用于操作所有的单列集合。方法如下:
public boolean add(E e):把给定的对象天爱到当前结合中。
public Boolean addAll(Collection<? extends E>)将另一个集合元素添加到当前集合中。
public void clear():清空集合中的所有元素。
public Boolean remove(E e):把给定的对象在当前集合中删除。
public Boolean contains(Object obj):判断当前集合中是否包含给定的对象。
public Boolean isEmpty():判断当前集合是否为空。
public int size():返回集合中元素的个数
public Object[] toArray():把集合中的元素,存储到数组中。
练习代码:
import java.util.ArrayList; import java.util.Collection; public class CollectionDemo1 { public static void main(String[] args){ Collection c1 = new ArrayList(); Collection c2 = new ArrayList(); c1.add("张三"); c1.add("张三"); c2.add(33.5); c2.add("天气很好"); c1.add("李四"); c1.add("张三"); c1.add(33); c1.addAll(c2); System.out.println("c1: " + c1); System.out.println("c2: " + c2); // 移除 c1.remove(33); c1.removeAll(c2); // 移除另一个集合中所有的元素 System.out.println("c11: " + c1); System.out.println(c1.contains("张三")); System.out.println(c1.isEmpty()); // 个数 System.out.println("c1.size(): " + c1.size()); // 集合转换数据 Object[] o1 = c1.toArray(); for(int i = 0; i <o1.length; i++){ System.out.println("o1==="+o1[i]); } // 清空 c1.clear(); System.out.println(c1); System.out.println(c1.isEmpty()); } }
结果: