在程序中,针对集合的操作非常频繁,例如将集合中的元素排序、从集合中查找某个元素等。针对这些常见操作,JDK 提供了一个工具类专门用来操作集合,这个类就是Collections,它位于java.util包中。Collections类中提供了大量的方法用于对集合中的元素进行排序、查找和修改等操作,接下来对这些常用的方法进行介绍。
排序操作
Collections类中提供了一系列方法用于对List集合进行排序,如表所示。
| 方法声明 | 功能描述 |
| static <T>boolean add AIl(Collection <? super T>c,T... elements) | 将所有指定元素添加到指定的collection中 |
| static void reverse(List list) | 反转指定List集合中元素的顺序 |
| static void shufflc(List list) | 对List集合屮的元素进行随机排序(模拟玩扑克屮的“洗牌”) |
| static void sort(List list) | 根据元素的自然顺序对List集合中的元素进行排序 |
| static void swap(List list,int i,int j) | 将指定List集合中i处元素和j处元素进行交换 |
接下来通过一个案例针对表中的方法进行学习,如例所示。
import java.util.ArrayList;
import java.util.Collections;
public class Example {
public static void main(String[] args) {
ArrayList list = new ArrayList();
Collections.addAll(list, "C", "Z", "B", "K"); // 添加元素
System.out.println("排序前: " + list); // 输出排序前的集合
Collections.reverse(list); // 反转集合
System.out.println("反转后: " + list);
Collections.sort(list); // 按自然顺序排列
System.out.println("按自然顺序排序后: " + list);
Collections.shuffle(list);
System.out.println("洗牌后: " + list);
}
}运行结果:
排序前: [C, Z, B, K] 反转后: [K, B, Z, C] 按自然顺序排序后: [B, C, K, Z] 洗牌后: [K, C, Z, B]
查找、替换操作
Collections类还提供了一些常用方法用于查找、替换集合中的元素,如表所示。
| 方法声明 | 功能描述 |
| static int binaryScarch ( List list,Object key) | 使用二分法搜索指定对象在List集合中的索引,杳找的 List集合中的元素必须是有序的 |
| static Object max(Collection col) | 根据元素的自然顺序,返回给定集合中最大的元素 |
| static Object min (Collection col) | 根据元素的自然顺序,返回给定集合中最小的元素 |
| static boolean replaccAll (List list,Object oldVal,Object ncwVal) | 用一个新的newVal替换List集合中所有的旧值oldVal |
接下来使用表中的方法通过一个案例演示如何查找、替换集合中的元素,如例所示。
import java.util.ArrayList;
import java.util.Collections;
public class Example {
public static void main(String[] args) {
ArrayList list = new ArrayList();
Collections.addAll(list, -3, 2, 9, 5, 8);
System.out.println("集合中的元素: " + list);
System.out.println("集合中的最大元素: " + Collections.max(list));
System.out.println("集合中的最小元素: " + Collections.min(list));
Collections.replaceAll(list, 8, 0); // 将集合中的8 用0 替换掉
System.out.println("替换后的集合: " + list);
}
}运行结果:
集合中的元素: [-3, 2, 9, 5, 8] 集合中的最大元素: 9 集合中的最小元素: -3 替换后的集合: [-3, 2, 9, 5, 0]
Collections类中还有一些其他方法,有兴趣的初学者,可以根据需要自学API帮助文档,这里就不再介绍了。