Collection概念
Collection表示一组对象,是集中、收集之意。
Collection接口中定义的方法
方法 | 说明 |
---|---|
boolean add(Object element) | 增加元素到容器中 |
boolean remove(Object element) | 从容器中移除元素 |
boolean contains(Object element) | 容器中是否包含该元素 |
int size() | 容器中元素的数量 |
boolean isEmpty() | 判断容器是否为空 |
void clear() | 清空容器中所有元素 |
Iterator iterator() | 获得迭代器,用于遍历所有元素 |
boolean containsAll(Collection c) | 本容器是否包含c容器中所有元素 |
boolean addAll(Collection c) | 将容器c中所有元素增加到本容器 |
boolean removeAll(Collection c) | 移除本容器和容器c中都包含的元素(共同的元素---交集) |
boolean retainAll(Collection c) | 取本容器和容器c中都包含的元素(移除非交集元素) |
Object[] toArray() | 转化成Object数组 |
Collection子接口
List
Set
-
因为List和Set子接口继承了Collection
-
所以在List和Set中都有Collection的方法
size和isEmpty方法
package com.collection;
import java.util.*;
/**
* 测试Collection接口中的方法---容器的接口
* @author Lucifer
*/
public class TestList {
public static void main(String[] args) {
/*容器接口,泛型是放字符串*/
Collection<String> c = new ArrayList();
/*
ArrayList实现了List接口
List接口继承了Collection接口
Collection要加泛型
*/
/*测试Collection里面的方法*/
System.out.println(c.size());
System.out.println(c.isEmpty());
}
}
add和remove方法、clear方法
package com.collection;
import java.util.*;
/**
* 测试Collection接口中的方法---容器的接口
* @author Lucifer
*/
public class TestList {
public static void main(String[] args) {
/*add方法*/
c.add("James"); //存储的是对象的地址,移除的时候也是移除对象在容器中的地址
c.add("Harden");
System.out.println(c);
System.out.println(c.size());
/*remove方法*/
c.remove("Harden"); //注意这个方法是从容器里面移除,并不是删除它---对象本身存在,只是不在容器里面
System.out.println(c);
System.out.println(c.size());
/*clear方法*/
c.clear(); //移除所有元素在容器中的地址
System.out.println(c.size());
}
}
contains和Object[] toArray方法
package com.collection;
import java.util.*;
/**
* 测试Collection接口中的方法---容器的接口
* @author Lucifer
*/
public class TestList {
public static void main(String[] args) {
/*容器接口,泛型是放字符串*/
Collection<String> c = new ArrayList<>();
/*
ArrayList实现了List接口
List接口继承了Collection接口
Collection要加泛型
*/
/*add方法*/
c.add("James"); //存储的是对象的地址,移除的时候也是移除对象在容器中的地址
c.add("Harden");
System.out.println(c);
System.out.println(c.size());
/*contains方法*/
System.out.println(c.contains("Jun"));
System.out.println(c.contains("James"));
/*
contains方法实现的底层机制涉及到
equals方法
*/
/*Object toArray方法*/
Object[] objs = c.toArray();
System.out.println(objs);
System.out.println(Arrays.toString(objs));
/*
因为List和Set子接口继承了Collection
所以在List和Set中都有Collection的方法
*/
}
}
测试集合方法:
/*测试集合相关的操作---两个容器*/
public static void test01(){
}
public static void test02(){
List<String> list01 = new ArrayList<>();
list01.add("aa");
list01.add("bb");
list01.add("cc");
List<String> list02 = new ArrayList<>();
list02.add("aa");
list02.add("dd");
list02.add("ee");
System.out.println("list01:" + list01);
/*测试addAll方法*/
list01.addAll(list02);
list01.addAll(list02);
System.out.println("list01:" + list01);
/*测试moveAll方法*/
list01.removeAll(list02);
System.out.println("list01:" + list01);
/*retainAll取交集方法*/
list01.retainAll(list02);
System.out.println("list01:" + list01);
/*containsAll方法*/
System.out.println(list01.containsAll(list02));
}
}
Collection接口的方法基本上在这类已经完了
List里面的一半的方法也已经完了
Set的方法基本上和Collection一致
通过源码查看