在程序中,针对集合的操作非常频繁,例如将集合中的元素排序、从集合中查找某个元素等。针对这些常见操作,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帮助文档,这里就不再介绍了。