首页 > 编程笔记 > Java笔记 阅读:13

Java Collections工具类的用法(附带实例)

Collections 不是接口也不是集合,而是 Collection 接口的工具类,它提供了一系列静态方法对集合元素进行查询、排序和修改等操作,能够操作 Set、List 和 Map 等集合。

下面对 Collections 类的常用方法进行详细介绍。

Java Collections排序操作

Collections 类中定义了一些对 List 集合进行排序的静态方法,如下表所示。

表:Collections类的排序方法
方法 方法描述
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]

程序中先向 List 集合添加了 7 个元素,分别为 5、6、3、1、2、7、4:

Java Collections查找、替换操作

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

运行结果是先打印了排序后的 List 集合,接着输出 List 集合中元素 1 的索引。索引为 0,说明集合索引是从 0 开始的。接着打印了集合中的最大元素和最小元素。接着用元素 6 替换掉集合里的元素 1 再次打印集合。最后打印出元素 6 在集合中出现的次数,结果为 2。

相关文章