一、为什么要使用集合
1.集合、数组都是对多个数据进行存储操作的结构,简称Java容器。
2.1 数组在存储多个数据方面的特点:
- 一旦初始化以后,其长度就确定了。
- 数组一旦定义好,其元素的类型也就确定了。我们也就只能操作指定类型的数据了。
2.2数组在存储多个数据方面的缺点:
-
一旦初始化以后,其长度就不可修改。
-
数组中提供的方法非常有限,对于添加、删除、插入数据等操作,非常不便,同时效率不高。
-
获取数组中实际元素的个数的需求,数组没有现成的属性或方法可用
- 数组存储数据的特点:有序、可重复。对于无序、不可重复的需求,不能满足。
就是因为数组有以上的缺点,所以引出集合。
二、java集合框架
- Collection接口:单列数据,定义了存取一组对象的方法的集合
- List:元素有序、可重复的集合(动态的“数组”)
- ArrayList、LinkedList、Vector
- Set: 元素无序、不可重复的集合(高中的“集合”)
- HashSet、LinkedHashSet、TreeSet
- List:元素有序、可重复的集合(动态的“数组”)
- Map接口:双列数据,保存具有映射关系“key一value对”的集合(“函数”)
- HashMap、LinkedHashMap、TreeMap、Hashtable、Properties
三、Collection接口
- Collection接口:单列数据,定义了存取一组对象的方法的集合
- List:元素有序、可重复的集合(动态的“数组”)
- ArrayList、LinkedList、Vector
- Set: 元素无序、不可重复的集合(高中的“集合”)
- HashSet、LinkedHashSet、TreeSet
- List:元素有序、可重复的集合(动态的“数组”)
1、Collection接口中的方法
- add(object e): 将元素e添加到集合collection中
- size():获取添加的元素的个数
- addAll(Collection coll1): 将collection1集合中的元素添加到当前的集合中
- clear():清空集合元素
- isEmpty():判断当前集合是否为空
Collection collection = new ArrayList();
//add(object e): 将元素e添加到集合collection中
collection.add("aaa");
collection.add(111);
//size():获取添加的元素的个数
System.out.println(collection.size());
Collection collection1 = new ArrayList();
//addAll(Collection coll): 将collection集合中的元素添加到当前的集合中
collection.addAll(collection);
//clear():清空集合元素
collection.clear();
//isEmpty():判断当前集合是否为空
- contains(object obj):判断当前集合中是否包含obj
- 我们在判断时会调用obj对象所在类的equals()
- remove(Object obj): 从当前集合中移除obj元素
- removeALl(Collection coll1):差集:从当前集合中移除collection1中所有的元素。
- retainAll(Collection coll1):交集: 获取当前集合和coll1集合的交集,并返回给当前集合
- equals(Object obj): 要想返回true,需要当前集合和形参集合的元素都相同,包括顺序。
- hashCode():返回当前对象的哈希值
- toArray:集合–>数组
- Arrays类的静态方法asList():数组–>集合
// contains(object