目录
1、Collections介绍
2、Collections常用方法详解
一、Collections介绍
1、所属于
java.lang.Object
java.util.Collections
2、介绍
Collections类是集合类的一个工具类/帮助类,其中提供了一系列静态方法,用于对集合中的元素进行排序、搜索以及线程安全等各种操作。
二、常用方法
排序操作
1、sort() 自然排序
作用:根据元素的自然顺序对指定列表按升序进行排序。
Demo:
/**
* 1、sort() 排序方法
*/
List list = new ArrayList<>();
list.add(“1”);
list.add(“a”);
list.add(“cc”);
list.add(“333”);
System.out.println(“直接进行输出:”);
System.out.println(list);
Collections.sort(list);
System.out.println(“排序后的list如下:”);
System.out.println(list);
输出:
2、reverse()
/**
* 2、reverse()方法 逆序
*/
System.out.println("将排序后的list进行逆序输出:");
Collections.reverse(list);
System.out.println(list);
输出:
3、shuffle()
/**
* 3、shuffle()方法 随机排序
*/
System.out.println("将list进行随机排序如下:");
Collections.shuffle(list);
System.out.println(list);
输出:
4、swap()
/**
* 4、swap()方法 交换指定列表中指定位置的元素
*/
System.out.println("交换后为:");
Collections.swap(list,2,3);
System.out.println(list);
输出:
5、max()和min()
/**
* 5、max()和min()
* 根据元素的自然顺序,即sort()方法排序后,返回指定集合中的最大值和最小值
*/
System.out.println("最大值为"+Collections.max(list));
System.out.println("最小值为"+Collections.min(list));
输出:
6、copy()
/**
* 6、copy() 将所有元素从一个列表复制到另一个列表中
* 注意:目标集合必须大于等于原集合大小
*/
List<String> newList = new ArrayList<>();
newList.add("");
newList.add("bb");
newList.add("22");
newList.add("");
newList.add("nn");
newList.add(" ");
Collections.copy(newList,list);
System.out.println("新列表内容:");
System.out.println(newList);
输出:
7、fill()
/**
* 7、fill() 填充
* 用指定的元素代替指定列表的所有元素
*/
Collections.fill(list,"666");
System.out.println("使用666替代list集合所有内容:");
System.out.println(list);
输出:
8、replaceAll()
/**
* 8、replaceAll()
* 将列表中一个指定值的所有出现替换为另一个
*/
List<String> list2 = new ArrayList<>();
list2.add("1");
list2.add("22");
list2.add("4");
list2.add("3");
System.out.println("list2内容:");
System.out.println(list2);
//若值存在,返回true
boolean b = Collections.replaceAll(list2,"1","88");
System.out.println(b);
System.out.println("替换后为:");
System.out.println(list2);
输出:
9、rotate()
/**
* 9、rotate()方法
* 将指定列表中的元素旋转到指定的距离
* 集合中的元素向后移m个位置,在后边被遮盖的元素循环到前面
* (负数向左移动,正数向右移动)
*/
System.out.println("list2正向移动后:");
Collections.rotate(list2,2);
System.out.println(list2);
System.out.println("负向移动后:");
Collections.rotate(list2,-3);
System.out.println(list2);
输出:
10、frequency()
/**
* 10、frequency() 返回指定集合中指定对象出现的次数
*/
int count = Collections.frequency(list2,"88");
System.out.println("list2集合内容:"+list2);
System.out.println("list2集合中88出现的次数为"+count);
输出:
11、同步控制
/**
* 同步控制
* Collections类中提供了多个synchronizedXxx()方法,将指定集合
* 包装成线程同步的集合,从而解决多线程并发访问集合时的线程安全问题
*
* @param args
*/
public static void main(String[] args) {
Collection c = Collections.synchronizedCollection(new ArrayList());
List list = Collections.synchronizedList(new ArrayList());
Set s = Collections.synchronizedSet(new HashSet());
Map map = Collections.synchronizedMap(new HashMap());
}