一、介绍
Collections是一个类,容器的工具类,就如同Arrays是数组的工具类。工具类不用创建实例,拿过来就可以用。
二、方法
可以提供如下的静态public方法。
1、反转reverse
reverse 使List中的数据发生翻转。只能对list集合,因为它有顺序,不能对set集合。
package collection;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
public class collections {
public static void main(String[] args) {
//先创建一个集合List
List<Integer> numbers = new ArrayList<Integer>();
for (int i = 0; i < 10; i++) {
numbers.add(i);
}
System.out.println("原集合 = " + numbers);
Collections.reverse(numbers);
System.out.println("反转后的集合 = " + numbers);
}
}
2、混淆
shuffle 混淆List中数据的顺序
package collection;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
public class collections {
public static void main(String[] args) {
//先创建一个集合List
List<Integer> numbers = new ArrayList<Integer>();
for (int i = 0; i < 10; i++) {
numbers.add(i);
}
System.out.println("原集合 = " + numbers);
Collections.reverse(numbers);
System.out.println("反转后的集合 = " + numbers);
Collections.shuffle(numbers);
System.out.println("混淆后的集合 = " + numbers);
}
}
3、排序
sort 对List中的数据进行排序
package collection;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
public class collections {
public static void main(String[] args) {
//先创建一个集合List
List<Integer> numbers = new ArrayList<Integer>();
for (int i = 0; i < 10; i++) {
numbers.add(i);
}
System.out.println("原集合 = " + numbers);
Collections.reverse(numbers);
System.out.println("反转后的集合 = " + numbers);
Collections.shuffle(numbers);
System.out.println("混淆后的集合 = " + numbers);
Collections.sort(numbers); //从小到大
System.out.println("排序后的集合 = " + numbers);
}
}
4、交换
swap 交换两个数据的位置
package collection;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
public class collections {
public static void main(String[] args) {
//先创建一个集合List
List<Integer> numbers = new ArrayList<Integer>();
for (int i = 0; i < 10; i++) {
numbers.add(i);
}
System.out.println("原集合 = " + numbers);
Collections.reverse(numbers);
System.out.println("反转后的集合 = " + numbers);
Collections.shuffle(numbers);
System.out.println("混淆后的集合 = " + numbers);
Collections.sort(numbers); //从小到大
System.out.println("排序后的集合 = " + numbers);
Collections.swap(numbers,0,5);
System.out.println("交换0和5下标的数据后,集合中的数据 = " + numbers);
}
}
5、滚动
rotate 把List中的数据,向右滚动指定单位的长度
package collection;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
public class collections {
public static void main(String[] args) {
//先创建一个集合List
List<Integer> numbers = new ArrayList<Integer>();
for (int i = 0; i < 10; i++) {
numbers.add(i);
}
System.out.println("原集合 = " + numbers);
Collections.reverse(numbers);
System.out.println("反转后的集合 = " + numbers);
Collections.shuffle(numbers);
System.out.println("混淆后的集合 = " + numbers);
Collections.sort(numbers); //从小到大
System.out.println("排序后的集合 = " + numbers);
Collections.swap(numbers,0,5);
System.out.println("交换0和5下标的数据后,集合中的数据 = " + numbers);
Collections.rotate(numbers,2);
System.out.println("滚动2个元素后的集合 = " + numbers);
}
}
6、线程安全
synchronizedList 把非线程安全的List转换为线程安全的List。
package collection;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
public class collections {
public static void main(String[] args) {
//先创建一个集合List
List<Integer> numbers = new ArrayList<Integer>();
for (int i = 0; i < 10; i++) {
numbers.add(i);
}
System.out.println("原集合 = " + numbers);
Collections.reverse(numbers);
System.out.println("反转后的集合 = " + numbers);
Collections.shuffle(numbers);
System.out.println("混淆后的集合 = " + numbers);
Collections.sort(numbers); //从小到大
System.out.println("排序后的集合 = " + numbers);
Collections.swap(numbers,0,5);
System.out.println("交换0和5下标的数据后,集合中的数据 = " + numbers);
Collections.rotate(numbers,2);
System.out.println("滚动2个元素后的集合 = " + numbers);
System.out.println("把非线程安全的List转换为线程安全的List");
List<Integer> num = (List<Integer>) Collections.synchronizedList(numbers);
System.out.println(num);
}
}