在学习集合前,我们曾学习了数组,从数组的特点可知数组要存放相同类型的一组数据,并指定数组的长度。如果并不知道程序运行时会需要多少对象,或者需要更复杂方式存储对象,此时可以选择使用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.
*
*@paramminCapacity the desired minimum capacity*/
private void grow(intminCapacity) {//overflow-conscious code
int oldCapacity =elementData.length;int newCapacity = oldCapacity + (oldCapacity >> 1); //(右移一位) 扩容长度:相当于原来长度的1.5倍
1.2 api方法
add:要求必须传入的参数是Object对象,因此当写入基本数据类型的时候,包含了自动拆箱和自动装箱的过程
Collection collection = newArrayList();
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 = newArrayList();
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:将集合转换为数组