常用工具类——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) ? "是" : "否"));
    }
}
相关推荐
柒七爱吃麻辣烫14 分钟前
在Linux中安装JDK并且搭建Java环境
java·linux·开发语言
极小狐24 分钟前
极狐GitLab 容器镜像仓库功能介绍
java·前端·数据库·npm·gitlab
努力的搬砖人.1 小时前
如何让rabbitmq保存服务断开重连?保证高可用?
java·分布式·rabbitmq
_星辰大海乀1 小时前
数据库约束
java·数据结构·数据库·sql·链表
多多*1 小时前
Java反射 八股版
java·开发语言·hive·python·sql·log4j·mybatis
码农飞哥1 小时前
互联网大厂Java面试实战:Spring Boot到微服务的技术问答解析
java·数据库·spring boot·缓存·微服务·消息队列·面试技巧
liudongyang1231 小时前
jenkins 启动报错
java·运维·jenkins
曹牧2 小时前
JSON 实体属性映射的最佳实践
java
qq_543248522 小时前
Tomcat服务部署
java·tomcat
Auc242 小时前
OJ判题系统第4期之判题机模块架构——设计思路、实现步骤、代码实现(工厂模式、代理模式的实践)
java·spring cloud·log4j·mybatis·代理模式·工厂模式