Collections工具类
Collections工具类介绍
- Collections是一个操作 Set、List和Map等集合的工具类
- Collections 中提供了一系列静态的方法对集合元素进行排序、查询和修改等操作
排序操作:(均为static方法)
- reverse(List):反转 List中元素的顺序
- shuffle(List):对List 集合元素进行随机排序
- sort(List):根据元素的自然顺序对指定List集合元素按升序排序
- sort(List, Comparator):根据指定的Comparator产生的顺序对 List集合元素进行排序
- swap(List, int, int):将指定list集合中的i处元素和j处元素进行交换
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
@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");
//reverse(List):反转 List中元素的顺序
Collections.reverse(list);
System.out.println("list = " + list);
//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);
//sort(List, Comparator):根据指定的Comparator产生的顺序对 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, 1);
System.out.println("交换后的情况");
System.out.println("list = " + list);
}
}
查找、替换
- Object max(Collection):根据元素的自然顺序,返回给定集合中的最大元素
- Object max(Collection, Comparator):根据Comparator指定的顺序,返回给定集合中的最大元素
- Object min(Collection)
- Object min(Collection,Comparator)
- int frequency(Collection,Object):返回指定集合中指定元素的出现次数
- void copy(List dest,List src):将src中的内容复制到dest中
- boolean replaceAll(List list, Object oldVal, Object newVal):使用新值替换 List 对象的所有旧值
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
@SuppressWarnings({"all"})
public class Collections_ {
public static void main(String[] args) {
//创建ArrayList集合,用于测试。
List list = new ArrayList();
list.add("tom");
list.add("tom");
list.add("smith");
list.add("king");
list.add("milan");
//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 list1 = new ArrayList();
//为了完成一个完整的拷贝,我们需要先给dest赋值,大小和list.size()一样
for (int i = 0; i < list.size(); i++) {
list1.add("");
}
//拷贝
Collections.copy(list1, list);
System.out.println("list1 = " + list1);
//boolean replaceAll(List list, Object oldVal, Object newVal):使用新值替换 List 对象的所有旧值
//把tom替换成汤姆
Collections.replaceAll(list, "tom", "汤姆");
System.out.println("list替换后= " + list);
}
}