Java集合框架(一)—Collection接口
在学习集合前,我们曾学习了数组,从数组的特点可知数组要存放相同类型的一组数据,并指定数组的长度。如果并不知道程序运行时会需要多少对象,或者需要更复杂方式存储对象,此时可以选择使用Java集合框架。
Java集合框架包含的内容
Java集合框架提供了一套性能优良、使用方便的接口和类,它们位于java.util包中。
一、Collection接口
Collection:存放的是单一值
1.1 特点
1、可以存放不同类型的数据,而数组只能存放固定类型的数据
2、当使用arraylist子类实现的时候,初始化长度是10,当长度不够时会自动进行扩容操作
/** * Default initial capacity. */ private static final int DEFAULT_CAPACITY = 10; /** * Increases the capacity to ensure that it can hold at least the * number of elements specified by the minimum capacity argument. * * @param minCapacity the desired minimum capacity */ private void grow(int minCapacity) { // overflow-conscious code int oldCapacity = elementData.length; int newCapacity = oldCapacity + (oldCapacity >> 1); // (右移一位) 扩容长度:相当于原来长度的1.5倍
1.2 api方法
add:要求必须传入的参数是Object对象,因此当写入基本数据类型的时候,包含了自动拆箱和自动装箱的过程
Collection collection = new ArrayList(); collection.add(1); // 等价于:collection.add(new Integer(1)); collection.add(3.14); collection.add(true); collection.add("abc");
结果:
[1, 3.14, true, abc]
addAll:添加另一个集合的元到此集合中
Collection collection1 = new ArrayList(); collection1.add("a"); collection1.add("b"); collection1.add("c"); collection1.add("d"); collection.addAll(collection1); System.out.println(collection); 结果: [1, 3.14, true, abc, a, b, c, d]
clear:只是清空集合中的元素,但是此集合对象并没有被回收
remove:删除指定元素
removeAll:删除集合元素
contains:判断集合中是否包含指定的元素值,返回boolean类型
containsAll:判断此集合中是否包含另一个集合
isEmpty:判断集合是否等于空
retainAll:若集合中拥有另一个集合的所有元素,返回true,否则返回false
size:返回当前集合的大小
toArray:将集合转换为数组
你看,这时光,不急不缓,不前不后