常用工具类——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) ? "是" : "否"));
    }
}
相关推荐
GGGGGGGGGGGGGG.33 分钟前
使用dockerfile创建镜像
java·开发语言
兮动人2 小时前
SpringBoot加载配置文件的优先级
java·spring boot·后端·springboot加载配置
我爱Jack2 小时前
HttpServletRequest 和 HttpServletResponse 区别和作用
java·spring·mvc
yyueshen2 小时前
volatile 在 JVM 层面的实现机制
java·jvm
慕容魏2 小时前
入门到入土,Java学习 day16(算法1)
java·学习·算法
认真的小羽❅2 小时前
动态规划详解(二):从暴力递归到动态规划的完整优化之路
java·算法·动态规划
m0_748254662 小时前
Spring Boot 热部署
java·spring boot·后端
mango02192 小时前
SpringMVC
java
Seven972 小时前
SpringCloud带你走进微服务的世界
java·后端·spring cloud
Vacant Seat3 小时前
图论-实现Trie(前缀树)
java·开发语言·数据结构·图论