Collection
- Collections 是集合工具类,用来对集合进行操作;
- 定义了对集合进行基本操作的一些通用方法,是Set 接口和 List 接口的父接口,List 接口 和 Set 接口 可以调用这些方法;
- Collection不能实例化,可以通过 ArrayList 实现类来调用 Collection 接口的方法;
- 任何对象加入集合后如果不加泛型约束(即泛化)都会自动转变为 Object 类型,所以在取出的时候要强制类型转换;
- java.util.Collections,详见:Class Collections;
1. API
类型 | 方法 | 说明 |
---|
boolean | add(E e) | 向集合中添加一个元素,元素数据类型是E |
boolean | addAll(Collection c) | 将集合中的所有元素添加到集合c |
boolean | remove(Object o) | 删除此集合中指定元素o |
boolean | removeAll(Collection c) | 删除此集合中所有在集合c中的元素 |
void | clear() | 删除此集合中的所有元素 |
int | size() | 返回此集合中的元素个数 |
Iterator | iterator() | 返回一个Iterator对象(迭代器),用于遍历此集合中的所有元素 |
boolean | contains(Object o) | 判断此集合中是否包含元素o |
boolean | containsAll(Collection c) | 判断此集合中是否包含集合c中的所有元素 |
boolean | retainAll(Collection c) | 保留此集合和指定集合c中都出现的元素 |
Object [ ] | toArray() | 返回此集合中所有元素的数组 |
void | shuffle(List<?> list) | 打乱集合顺序 |
void | sort(List list) | 将集合中元素按照默认规则排序 |
void | sort(List list,Comparator<? super T> ) | 将集合中元素按照指定规则排序 |
2. 常用方法
a. addAll()
import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
public class test {
public static void main(String[] args) {
String a = "A";
String b = "B";
Collection<String> list = new ArrayList<String>();
list.add(a);
list.add(b);
Collection<String> list2 = new ArrayList<String>();
list2.addAll(list);
Iterator<String> it = list2.iterator();
while (it.hasNext()) {
String str = it.next();
System.out.print(str+" ");
}
}
}
b. containsAll()
- 查看是否存在指定集合的所有对象,用来检验 addAll();
import java.util.ArrayList;
import java.util.Collection;
public class test {
public static void main(String[] args) {
String a = "A";
String b = "B";
String c = "C";
Collection<String> list = new ArrayList<String>();
list.add(a);
list.add(b);
Collection<String> list2 = new ArrayList<String>();
list2.add(b);
list2.add(c);
list2.retainAll(list);
System.out.println(list2.containsAll(list));
}
}
c. removeAll()
import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
public class test {
public static void main(String[] args) {
String a = "A";
String b = "B";
String c = "C";
Collection<String> list = new ArrayList<String>();
list.add(a);
list.add(b);
Collection<String> list2 = new ArrayList<String>();
list2.add(b);
list2.add(c);
list2.removeAll(list);
Iterator<String> it = list2.iterator();
while (it.hasNext()) {
System.out.print(it.next() + " ");
}
}
}
d. retainAll()
- 保留交集,移除交集的补集,与 removeAll() 相反;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
public class test {
public static void main(String[] args) {
String a = "A";
String b = "B";
String c = "C";
Collection<String> list = new ArrayList<String>();
list.add(a);
list.add(b);
Collection<String> list2 = new ArrayList<String>();
list2.add(b);
list2.add(c);
list2.retainAll(list);
Iterator<String> it = list2.iterator();
while (it.hasNext()) {
System.out.print(it.next() + " ");
}
}
}
e. toArray()
- 返回一个包含所有对象的指定类型的数组;
- 必须先初始化一个指定容量的数集,类型满足泛化类型;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
public class test {
public static void main(String[] args) {
String a = "A";
String b = "B";
String c = "C";
Collection<String> list = new ArrayList<String>();
list.add(a);
list.add(b);
String temp[] = new String[1];
String str[] = list.toArray(temp);
System.out.println(Arrays.toString(str));
}
}
3. 实用工具
a. Iterator()
b. Comparator()
c. 可变参数