Collection接口

Collection接口下有List接口和set接口

特点:

  1.可以存放不同类型的数据,而数组只能存放固定类型的数据

  2.在使用ArrayList子类实现的时候,初始化的长度是10,当长度不够的时候会自动进行扩容(newlength = oldlength * 1.5)

    

    我们可以看到这里进行了右移操作,oldCapacity=10,oldCapacity>>1=5,所以扩容后的长度为15

add(Object e):

要求必须传入的参数是Object对象,因此在写入基本数据类型的时候,包含了自动拆箱和装箱的过程

 1 public class CollectionDemo {
 2     public static void main(String[] args) {
 3         //Collection是接口,不能实例化,要实例化可实现该接口的子类
 4         Collection collection = new ArrayList();
 5         /**
 6          * 当调用collection中add(Object e)方法并传入基本数据类型时:
 7          *     传入的基本数据类型不属于Object类型,会自动装箱成对应的包装类
 8          *     这其中包含了基本数据类型隐式转换成包装类的过程
 9          */
10         collection.add(1);
11         collection.add(true);
12         collection.add(1.23);
13         collection.add("abc");  
14     }
15 }

 add(int index,E element):

在指定下标处添加元素,该方法是ArrayList中的方法,在使用时collection对象要进行强转

1 public class CollectionDemo {
2     public static void main(String[] args) {
3         Collection collection = new ArrayList();
4         collection.add(1);
5         collection.add(true);
6         //该add方法是ArrayList中的
7         ((ArrayList)collection).add(0,0);
8     }
9 }

addAll(Collection c):

添加另一个集合的元素到此集合中

 1 public class CollectionDemo {
 2     public static void main(String[] args) {
 3         Collection collection = new ArrayList();
 4         collection.add(1);
 5         collection.add(true);
 6         Collection collection1 = new ArrayList();
 7         collection1.add(2);
 8         collection1.add(false);
 9         collection.addAll(collection1);
10         System.out.println(collection);
11     }
12 }

clear():

只是清空集合中的元素,但是此集合对象并没有被回收

contains(Object b):

判断集合中是否包含指定的元素值

containsAll(Collection<?> c):

判断此集合中是否包含另一个集合

isEmpty ():

判断集合是否为空

remove(Object o):

删除指定元素

removeAll(Collection<?> c):

删除所有集合元素

retainAll(Collection<?> c):

若集合中拥有另一个集合的所有元素,返回true,否则,返回false

size():

返回当前集合的大小

toArray():

将集合转换成数组

原文地址:https://www.cnblogs.com/lyc-code/p/12574731.html