✈【【零基础 快速学Java】韩顺平 零基础30天学会Java】
【举个栗子】
package com.dingjiaxiong.collections_;
import java.lang.management.LockInfo;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
/**
* ClassName: Collections_
* date: 2022/9/5 21:38
*
* @author DingJiaxiong
*/
@SuppressWarnings({"all"})
public class Collections_ {
public static void main(String[] args) {
//创建ArrayList 集合,用于测试
List list = new ArrayList();
list.add("tom");
list.add("smith");
list.add("king");
list.add("milan");
list.add("tom");
System.out.println("list = " + list);
System.out.println("反转");
//reverse(List):反转 List 中元素的顺序
Collections.reverse(list);
System.out.println("list = " + list);
System.out.println("随机排序");
// shuffle(List):对 List 集合元素进行随机排序
for (int i = 0; i < 5; i++) {
Collections.shuffle(list);
System.out.println("list = " + list);
}
//sort(List):根据元素的自然顺序对指定 List 集合元素按升序排序
Collections.sort(list);
System.out.println("自然排序后:");
System.out.println("list = " + list);
//按照字符串的长度大小排序
Collections.sort(list, new Comparator() {
@Override
public int compare(Object o1, Object o2) {
return ((String) o1).length() - ((String) o2).length();
}
});
System.out.println("字符串长度大小排序后:");
System.out.println("list = " + list);
// swap(List,int, int):将指定 list 集合中的 i 处元素和 j 处元素进行交换
Collections.swap(list , 0 ,3);
System.out.println("使用swap交换后");
System.out.println("list = " + list);
Object max(Collection):根据元素的自然顺序,返回给定集合中的最大元素
System.out.println("自然顺序最大元素 = " + Collections.max(list));
Object max(Collection,Comparator):根据 Comparator 指定的顺序,返回给定集合中的最大元素
比如,返回长度最大的元素
Object maxObject = Collections.max(list, new Comparator() {
@Override
public int compare(Object o1, Object o2) {
return ((String)o1).length() - ((String) o2).length();
}
});
System.out.println("长度最大的元素 = " + maxObject);
//int frequency(Collection,Object):返回指定集合中指定元素的出现次数
System.out.println("tom 出现的次数 " + Collections.frequency(list,"tom"));
void copy(List dest,List src):将 src 中的内容复制到 dest
ArrayList dest = new ArrayList();
为了完成一个完整拷贝,需要先给 dest 赋值,大小和 list.size() 一样
for (int i = 0; i < list.size(); i++) {
dest.add("");
}
//拷贝
Collections.copy(dest , list);
System.out.println("dest = " + dest);
//boolean replaceAll(List list,Object oldVal,Object newVal):使用新值替换 List 对象的所有旧值
//如果 list 中,有 tom 就替换成 汤姆
Collections.replaceAll(list , "tom" ,"汤姆");
System.out.println("list 替换后 = " + list);
}
}
运行结果
略