集合类是Java数据结构的实现。Java的集合类是java.util包中的重要内容,它允许以各种方式将元素分组,并定义了各种使这些元素更容易操作的方法。Java集合类是Java将一些基本的和使用频率极高的基础类进行封装和增强后再以一个类的形式提供。集合类是可以往里面保存多个对象的类,存放的是对象,不同的集合类有不同的功能和特点,适合不同的场合,用以解决一些实际问题。
使用Java提供的集合类有如下功能:
(1)降低编程难度:在编程中会经常需要链表、向量等集合类,如果自己动手写代码实现这些类,需要花费较多的时间和精力。调用Java中提供的这些接口和类,可以很容易的处理数据。
(2)提升程序的运行速度和质量:Java提供的集合类具有较高的质量,运行时速度也较快。使用这些集合类提供的数据结构,程序员可以从“重复造轮子”中解脱出来,将精力专注于提升程序的质量和性能。
(3)无需再学习新的APl:借助泛型,只要了解了这些类的使用方法,就可以将它们应用到很多数据类型中。如果知道了LinkedList
(4)增加代码重用性:也是借助泛型,就算对集合类中的元素类型进行了修改,集合类相关的代码也几乎不用修改。
1.数组的长度是固定的,集合的长度是可变的
2.数组中存储的是同一类型的数据,集合中存储的都是对象(引用类型)
boolean add(E e) 在集合当中添加一个元素 E->Object
如果返回的true 说明元素确实添加到了集合当中 并且集合做出了相应的调整
如果返回的false 说明元素没有添加到集合当中 说明该元素已经存在
boolean addAll(Collection extends E> c) 在当前集合中添加传入集合中的所有元素
如果返回的true 说明元素确实添加到了集合当中 并且集合做出了相应的调整
如果返回的false 说明元素没有添加到集合当中 说明该元素已经存在
void clear() 清空当前的集合
boolean contains(Object o) 判断集合当中是否包含元素o
true 存在
false 不存在
boolean containsAll(Collection> c) 判断集合当中是否包含另一个集合c中所有的元素
true 存在
false 不存在
boolean equals(Object o) 比较两个集合是否相等 主要比的是集合当中的元素
int hashCode() 将一个集合当成一个对象元素看待 hashCode指的就是该对象在哈希表中的角标
boolean isEmpty() 判断当前集合是否为空
boolean remove(Object o) 在集合当中移出指定的一个元素o
true 表示该元素确实被删除了
false 表示该元素压根就不存在集合中 所以也就删不了
boolean removeAll(Collection> c) 删除集合当中存在于指定集合c中的元素
boolean retainAll(Collection> c) 两个集合交集
int size() 返回的就是当前集合中元素的个数
import java.util.ArrayList;
import java.util.Collection;
import javax.swing.SpringLayout.Constraints;
public class CollectionDemo {
public static void main(String[] args) {
Collection c1 = new ArrayList();//开始时,c1为空[]
System.out.println(c1.add(10)); //true [10]
System.out.println(c1.add(20)); //true [10,20]
System.out.println(c1.add(30)); //true [10,20,30]
System.out.println(c1); //[10, 20, 30]
System.out.println("==================");
Collection c2 = new ArrayList();//开始时,c2为空[]
System.out.println(c2.add(40)); //true [40]
System.out.println(c2.add(50)); //true [40,50]
System.out.println(c2.add(60)); //true [40,50,60]
System.out.println(c2); //[40, 50, 60]
System.out.println(c1.addAll(c2)); //true 将c2中内容添加进c1中
System.out.println(c2); //[40, 50, 60]
System.out.println(c1); //[10, 20, 30, 40, 50, 60]
c2.clear(); //清空c2中内容
System.out.println(c2); //c2中变为空[]
System.out.println(c1.contains(80));//false //查询c1中是否有80
System.out.println(c1.contains(40));//true //查询c1中是否有40
System.out.println(c1); //[10, 20, 30, 40, 50, 60]
System.out.println("====================");
Collection c3 = new ArrayList();//开始时,c3为空[]
c3.add(30); //在c3中加入30 [30]
c3.add(40); //[30,40]
System.out.println(c3); //[30, 40]
System.out.println(c1.containsAll(c3));//true //判断c3是否全部在c1中
System.out.println(c1.equals(c3)); //false //判断c1与c3是否相等
System.out.println(c1.remove(20)); //true //将c1中的20删除掉
System.out.println(c1); //[10, 30, 40, 50, 60]
System.out.println(c1.retainAll(c3));//true //求c1与c3的交集
System.out.println(c1); //[30, 40]
System.out.println("===================");
for(int i = 1;i<=5;i++){ //每循环一次,c1中添加一个元素
c1.add(i);
}
System.out.println(c1); //[30, 40, 1, 2, 3, 4, 5]
}
}