Collections:
1.可以操作Set、List、Map
2.该工具类提供了大量的方法对集合进行排序、查询、和修改等操作。还提供了将集合对象设置为不可变、对集合对象实现同步控制等方法。
3.这是一个工具类
排序操作
目标对象:List
测试代码:
package Collections;
import java.util.ArrayList;
import java.util.Collections;
public class SortTest {
public static void main(String[] args) {
ArrayList nums = new ArrayList();
nums.add(2);
nums.add(1);
nums.add(20);
nums.add(200);
nums.add(2000);
System.out.println(nums);
//将数组进行翻转
Collections.reverse(nums);
System.out.println(nums);
//将数组进行自然排序(因为int已经实现了comparator接口了)
Collections.sort(nums);
System.out.println(nums);
//将数组进行随机排序
Collections.shuffle(nums);
System.out.println(nums);
}
}
结果如下:
查找、替换操作
package Collections;
import java.util.ArrayList;
import java.util.Collections;
public class SearchTest {
public static void main(String[] args) {
ArrayList arrayList = new ArrayList();
arrayList.add(2);
arrayList.add(27);
arrayList.add(6);
arrayList.add(1);
System.out.println(arrayList);
//输出最大元素
System.out.println(Collections.max(arrayList));
System.out.println(Collections.min(arrayList));
//将列表中的6用9来代替
Collections.replaceAll(arrayList,6,9);
System.out.println(arrayList);
arrayList.add(9);
//判断9在list集合中出现的次数
int frequency = Collections.frequency(arrayList, 9);
System.out.println(frequency);
//对arrayList集合进行排序
Collections.sort(arrayList);
System.out.println(arrayList);
//对排列好的数据进行二分法查找
int i = Collections.binarySearch(arrayList, 9);
System.out.println(i);
}
}
结果如下:
同步控制
Collections类中提供了多个synchronizedXxx()方法,将指定的集合包装成线程同步的集合,解决多线程并发访问集合时的线程安全问题
下面创建四个线程安全的集合:
package Collections;
import java.util.*;
public class SynchronizedTest {
public static void main(String[] args) {
//创建四个线程安全的集合对象
Collection collection = Collections.synchronizedCollection(new ArrayList());
List list = Collections.synchronizedList(new ArrayList());
Set set = Collections.synchronizedSet(new HashSet());
Map map = Collections.synchronizedMap(new HashMap());
}
}