Java Collections工具类的用法(附带实例)
Collections 不是接口也不是集合,而是 Collection 接口的工具类,它提供了一系列静态方法对集合元素进行查询、排序和修改等操作,能够操作 Set、List 和 Map 等集合。
下面对 Collections 类的常用方法进行详细介绍。
接下来,通过案例来演示上述方法的使用:
接下来,通过案例来演示上述方法的使用:
下面对 Collections 类的常用方法进行详细介绍。
Java Collections排序操作
Collections 类中定义了一些对 List 集合进行排序的静态方法,如下表所示。方法 | 方法描述 |
---|---|
static void reverse(List list) | 反转 list 集合中的元素顺序 |
static void shuffle(List list) | 随机排序 list 集合中的元素 |
static void sort(List list) | 以自然顺序将 list 集合中的元素排序 |
static void swap(List list, int i, int j) | 将集合中指定两处位置的元素互换 |
接下来,通过案例来演示上述方法的使用:
import java.util.*; public class Demo { public static void main(String[] args) { List list = new ArrayList(); // 创建集合对象 list.add(5); // 添加元素 list.add(6); list.add(3); list.add(1); list.add(2); list.add(7); list.add(4); System.out.println("打印集合:" + list); // 打印集合 Collections.reverse(list); // 反转集合 System.out.println("反转集合:" + list); Collections.shuffle(list); // 随机排序 System.out.println("随机排序:" + list); Collections.sort(list); // 按自然顺序排序 System.out.println("自然顺序:" + list); Collections.swap(list, 1, 3); // 将索引为1的元素和索引为3的元素交换位置 System.out.println("交换元素:" + list); } }程序的运行结果如下:
打印集合:[5, 6, 3, 1, 2, 7, 4]
反转集合:[4, 7, 2, 1, 3, 6, 5]
随机排序:[3, 7, 5, 4, 1, 6, 2]
自然顺序:[1, 2, 3, 4, 5, 6, 7]
交换元素:[1, 4, 3, 2, 5, 6, 7]
- 第 1 次打印原始集合;
- 第 2 次使用 reverse() 方法将集合反转后打印;
- 第 3 次使用 shuffle() 方法将集合随机排序打印;
- 第 4 次使用 sort() 方法将集合按自然顺序排序打印;
- 最后使用 swap() 方法将索引为 1 的元素和索引为 3 的元素交换位置并打印。
Java Collections查找、替换操作
Collections 类中还提供了一些静态方法对集合进行查找、替换,如下表所示:方法 | 方法描述 |
---|---|
static int binarySearch(List list, Object o) | 在已经升序排序的 List 集合中,使用二分法搜索元素在集合中的索引 |
static Object max(Collection coll) | 返回集合中的最大元素 |
static Object min(Collection coll) | 返回集合中的最小元素 |
static boolean replaceAll(List list, Object o1, Object o2) | 用 o2 元素替换 List 集合中所有的 o1 元素 |
int frequency(Collection coll, Object o) | 返回集合中指定元素出现的次数 |
接下来,通过案例来演示上述方法的使用:
import java.util.*; public class Demo { public static void main(String[] args) { List list = new ArrayList(); // 创建集合对象 list.add(5); // 添加元素 list.add(6); list.add(3); list.add(1); list.add(2); list.add(7); list.add(4); Collections.sort(list); // 先将list集合升序排列 System.out.println(list); // 打印输出list集合 // 打印元素1在list集合中的索引 System.out.println(Collections.binarySearch(list, 1)); System.out.println("集合中的最大元素: " + Collections.max(list)); System.out.println("集合中的最小元素: " + Collections.min(list)); // 在list集合中,用元素6替换元素1 Collections.replaceAll(list, 1, 6); System.out.println(list); // 再次打印输出list集合 // 打印集合中元素6出现的次数 System.out.println(Collections.frequency(list, 6)); } }程序的运行结果如下:
1, 2, 3, 4, 5, 6, 7]
0
集合中的最大元素:7
集合中的最小元素:1
[6, 2, 3, 4, 5, 6, 7]
2