常用工具类——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) ? "是" : "否"));
    }
}
相关推荐
_F_y2 分钟前
C++重点知识总结
java·jvm·c++
打工的小王4 分钟前
Spring Boot(三)Spring Boot整合SpringMVC
java·spring boot·后端
毕设源码-赖学姐5 分钟前
【开题答辩全过程】以 高校体育场馆管理系统为例,包含答辩的问题和答案
java·spring boot
我真会写代码6 分钟前
SSM(指南一)---Maven项目管理从入门到精通|高质量实操指南
java·spring·tomcat·maven·ssm
vx_Biye_Design7 分钟前
【关注可免费领取源码】房屋出租系统的设计与实现--毕设附源码40805
java·spring boot·spring·spring cloud·servlet·eclipse·课程设计
DN金猿13 分钟前
接口路径正确,请求接口却提示404
java·tomcat
Maynor9961 小时前
OpenClaw 玩家必备:用 AI 自动追踪社区最新动态
java·服务器·人工智能
堕2741 小时前
java数据结构当中的《排序》(一 )
java·数据结构·排序算法
亓才孓1 小时前
[Class的应用]获取类的信息
java·开发语言
开开心心就好1 小时前
AI人声伴奏分离工具,离线提取伴奏K歌用
java·linux·开发语言·网络·人工智能·电脑·blender