Collections 工具类

112 阅读3分钟

初始化模拟数据

List list = new ArrayList();
list.add("a");
list.add("b");
list.add("c");
list.add("dd");
list.add("eee");
System.out.println("=========原始数据=========");
System.out.println(list);

输出结果:
=========原始数据=========
[a, b, c, dd, eee]

reverse 将集合中的元素进行翻转

System.out.println("=========翻转后数据=========");
System.out.println(list);

输出结果:
=========翻转后数据=========
[eee, dd, c, b, a]

shuffle 随机排序

System.out.println("=========随机排序后数据=========");
System.out.println(list);

输出结果(结果输出为随机的):
=========随机排序后数据=========
[dd, c, a, eee, b]

sort 排序 根据元素的自然顺序对集合中的元素进行升序排序

Collections.sort(list);
System.out.println("=========排序后数据=========");
System.out.println(list);

输出结果:
=========排序后数据=========
[a, b, c, dd, eee]

降序排序 根据元素的自然顺序对集合中的元素进行降序排序

Collections.sort(list, Collections.reverseOrder());
System.out.println("=========倒序后数据=========");
System.out.println(list);

输出结果:
=========倒序后数据=========
[eee, dd, c, b, a]

比较器 根据指定的比较器对集合中的元素进行排序

// 根据指定的比较器对集合中的元素进行排序
// 比较器 实现Comparator接口
// 重写compare方法
// 返回值 负数:第一个参数比第二个参数小 0:相等 正数:第一个参数比第二个参数大
// 升序排序 第一个参数-第二个参数
// 降序排序 第二个参数-第一个参数
// 例子:升序排序
Collections.sort(list, new Comparator() {
    @Override
    public int compare(Object o1, Object o2) {
        return ((String) o1).compareTo((String) o2);
    }
});
System.out.println("=========自定义排序后数据=========");
System.out.println(list);

输出结果:
=========自定义排序后数据=========
[a, b, c, dd, eee]

swap 将指定list中的两个元素交换位置

Collections.swap(list, 0, 1);
System.out.println("=========交换后数据=========");
System.out.println(list);

输出结果:
=========交换后数据=========
[b, a, c, dd, eee]

max 根据元素的自然顺序,返回给定集合中的最大元素

System.out.println("=========最大元素=========");
System.out.println(Collections.max(list));

输出结果:
=========最大元素=========
eee

min 根据元素的自然顺序,返回给定集合中的最小元素

System.out.println("=========最小元素=========");
System.out.println(Collections.min(list));

输出结果:
=========最小元素=========
a

比较器 返回给定集合中的最大元素

//  最大 根据指定比较器,返回给定集合中的最大元素
//  最小 根据指定比较器,返回给定集合中的最小元素
//  例子:根据字符串长度升序排序
//  返回list中的最大数据
Object max = Collections.max(list, new Comparator() {
    @Override
    public int compare(Object o1, Object o2) {
        return ((String) o1).length() - ((String) o2).length();
    }
});
System.out.println("=========自定义排序最大数据=========");
System.out.println(max);

输出结果:
=========自定义排序最大数据=========
eee

frequency 返回指定集合中某个元素的出现次数

System.out.println("=========a 元素的出现次数=========");
System.out.println(Collections.frequency(list, "a"));

输出结果:
=========a 元素的出现次数=========
1

replaceAll 指定元素全部替换成指定的新元素

// 将指定list中所有元素都替换成指定的新元素,如果list为null,不做处理
Collections.replaceAll(list, "a", "大写A");
System.out.println("=========替换后数据=========");
System.out.println(list);

输出结果:
=========替换后数据=========
[b, 大写A, c, dd, eee]

copy 集合复制

//  copy 将src中的数据复制到dest中,如果src和dest中有相同的元素,则覆盖
// 注意:dest需要提前创建好,并且长度需要大于等于src的长度
ArrayList dest = new ArrayList();
for (int i = 0; i < list.size(); i++) {
    dest.add("");
}
Collections.copy(dest, list);
System.out.println("=========复制后数据=========");
System.out.println(dest);

输出结果:
=========复制后数据=========
[b, 大写A, c, dd, eee]