常用工具类——Collections集合框架

常用工具类------Collections集合框架

Collections 是 JDK 提供的一个工具类,提供了一系列静态方法,分类来复习!

1.排序操作
  • reverse(List list) :反转顺序
  • shuffle(List list) : 洗牌,将顺序打乱
  • sort(List list) : 自然升序
  • sort(List list, Comparator c) :按照自定义的比较排序
  • swap(List list, int i, int j) :将 i 和 j 的位置元素交换
java 复制代码
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

public class CollectionsTools {
    public static void main(String[] args) {

        List<String> list = new ArrayList<>();
        list.add("A");
        list.add("B");
        list.add("C");
        list.add("D");
        list.add("E");
        list.add("F");

        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, 0, 1);
        System.out.println("交换后的顺序" + list);
    }
}

Result

text 复制代码
初始顺序:[A, B, C, D, E, F]
反转后的顺序[F, E, D, C, B, A]
洗牌后的顺序[B, E, F, C, A, D]
自然升序后的顺序[A, B, C, D, E, F]
交换后的顺序[B, A, C, D, E, F]
2.查找操作
  • binarySearch(List list, Object key) :二分查找法,前提是排序
  • max(Collection coll):返回最大元素
  • max(Collection coll, Comparator comp):根据自定义比较器,返回最大元素
  • min(Collection coll):返回最小元素
  • min(Collection coll, Comparator comp):根据自定义比较器,返回最小元素
  • fill(List list, Object obj): 使用指定对象填充
  • frequency(Collection c, Object o): 返回指定对象出现的次数
java 复制代码
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

public class CollectionsTools {
    public static void main(String[] args) {

        List<String> list = new ArrayList<>();
        list.add("A");
        list.add("A");
        list.add("C");
        list.add("D");
        list.add("E");
        list.add("F");
        list.add("F");
        list.add("F");

        System.out.println("初始顺序:" + list);

        // 二分查找
        Collections.sort(list);
        System.out.println(Collections.binarySearch(list, "C"));

        // 最大值
        System.out.println(Collections.max(list));

        // 最小值
        System.out.println(Collections.min(list));

        // 出现的次数
        System.out.println(Collections.frequency(list, "F"));

        // 填充
        Collections.fill(list, "Q");
        System.out.println("填充后的List"+ list);


    }
}

Result

复制代码
初始顺序:[A, A, C, D, E, F, F, F]
2
F
A
3
填充后的List[Q, Q, Q, Q, Q, Q, Q, Q]
3.同步控制

HashMap是线程不安全,Collections工具类中提供了多个方法,这些方法会返回一个同步的对象,保证多线程中解决集合时的安全问题。

java 复制代码
SynchronizedList synchronizedList = Collections.synchronizedList(list);
4.常用方法
  • addAll(Collection<? super T> c, T... elements):往集合中添加元素
  • disjoint(Collection<?> c1, Collection<?> c2) :判断两个集合是否没有交集
  • CollectionUtils.isEmpty(List list):集合空
  • CollectionUtils.isNotEmpty(List list):集合非空
java 复制代码
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

public class CollectionsTools3 {
    public static void main(String[] args) {
        List<String> list = new ArrayList<>();
        
        list.add("A");
        list.add("B");
        list.add("C");
        list.add("D");

        List<String> addlist = new ArrayList<>();
        Collections.addAll(addlist, "A", "B", "C");
        System.out.println("添加后的集合" + addlist);

        System.out.println("是否没有交集:" + (Collections.disjoint(list, addlist) ? "是" : "否"));
    }
}
相关推荐
Tisfy6 小时前
LeetCode 1927.求和游戏:抵消+看最值
java·leetcode·游戏·题解·博弈论
秋饼12 小时前
JDK 27 企业级 AI 服务落地实战:G1 默认、紧凑对象头、后量子 TLS 与 JFR 脱敏全解析
java·ai·技术分享·后端开发
卓怡学长13 小时前
w176基于SpringBoot的医院管理系统
java·spring boot·spring·maven·intellij-idea
lemon_sjdk13 小时前
ObjectProperty
java·开发语言·算法
hh95013 小时前
Agent Plan x DeepSeek Harness:Agent 供应链安全与第三方插件审计
java·开发语言·安全·agent plan·adg成都社区·adg社区
吴声子夜歌13 小时前
Java面试——HBase原理及应用
java·面试·hbase
浪兎兎13 小时前
【Java Web】Servlet + JSP 笔记
java·前端·servlet
吴声子夜歌13 小时前
Java面试——ElasticSearch原理及应用
java·面试·es
lhldsg13 小时前
家政派单系统开发实战:从需求分析到智能调度全流程指南
java·junit·小程序·uni-app·需求分析
吴声子夜歌13 小时前
Java面试——Spring原理及应用(一)
java·spring·面试