【JAVA学习之路 | 进阶篇】Collections工具类

简介: 【JAVA学习之路 | 进阶篇】Collections工具类

1.概念

参考操作数组的工具类 : Arrays.Collections在java.util包下,是操作集合框架(List, Set, Map等)的工具类.

2.常用方法(有个印象,不会就查API)

Collections提供了一系列静态(static)的方法对集合元素进行排序,查询和修改等操作,还提供了对集合对象设置不可变,对集合对象实现同步控制等方法.

方法较多,只截取了一部分.

(1). 排序操作


  • reverse(List list) 反转list中元素顺序.
  • shuffle(List list) 对list中的元素进行随机排序.
  • sort(List list) 按照元素的自然顺序对List中的元素按升序排序.
  • sort(List list, Comparator) 根据指定的Comparator的顺序对list中的元素排序.
  • swap(List list, int i, int j) 将list中第i个元素与第j个元素互换
@Test
    public void Test1() {
        List list = new ArrayList();
        list.add(12);
        list.add(78);
        list.add(67);
        list.add(45);
        list.add(56);
        list.add(34);
        list.add(23);
        for (Object obj : list) {
            System.out.print(obj + "\t");
        }
        System.out.println();
        Collections.reverse(list);
        for (Object obj : list) {
            System.out.print(obj + "\t");
        }
    }
 
控制台
12  78  67  45  56  34  23  
23  34  56  45  67  78  12
@Test
    public void test2() {
        List list = new ArrayList();
        list.add(12);
        list.add(78);
        list.add(67);
        list.add(45);
        list.add(56);
        list.add(34);
        list.add(23);
        //自然排序,按照升序排序
        Collections.sort(list);
        for (Object obj : list) {
            System.out.print(obj + "\t");
        }
        System.out.println();
        //定制排序,按照comparator指定的顺序排序
        Collections.sort(list, new Comparator(){
            @Override
            public int compare(Object o1, Object o2) {
                if (o1 instanceof Integer && o2 instanceof Integer) {
                    Integer i1 = (Integer) o1;
                    Integer i2 = (Integer) o2;
                    return -(i1 - i2);
                }
                throw new RuntimeException();
            }
        });
        for (Object obj : list) {
            System.out.print(obj + "\t");
        }
    }
 
控制台
12  23  34  45  56  67  78  
78  67  56  45  34  23  12

(2). 查找


  • Object max(Collection collection)按照集合的自然顺序返回集合中最大的元素.实际上返回最右边的元素.
  • Object max(Collection collection, Comparator comparator) 按照comparator指定的顺序,返回集合中最大的元素.
  • Object min(Collection collection)按照集合的自然顺序返回集合中最小的元素.实际上返回最左边的元素.
  • Object min(Collection collection, Comparator comparator) 按照comparator指定的顺序,返回集合中最小的元素.

(3). 复制, 替换

  • void copy(List dest, List src) 将src的内容复制到dest上.该必须满足dest.size()不小于src.size().
  • boolean replaceAllList(List list, Object oldval, Object newval) 使用新的值替换list对象中所有的旧值.
  • 提供了多种unmodifiableXxx(),返回指定的Xxx不可变的视图对象.
@Test
    public void Test3() {
        List list = new ArrayList();
        list.add(12);
        list.add(78);
        list.add(67);
        list.add(45);
        list.add(56);
        list.add(34);
        list.add(23);
        //list1是不可变的List对象
        List list1 = Collections.unmodifiableList(list);
        //报错
        list1.add(23);
    }

(4). 同步

  • 提供了多种synchronizedXxx方法,该方法可将指定集合包装成线程安全的集合.其实源码就是用synchronized包了起来.
相关文章
|
27天前
|
XML Java 编译器
Java学习十六—掌握注解:让编程更简单
Java 注解(Annotation)是一种特殊的语法结构,可以在代码中嵌入元数据。它们不直接影响代码的运行,但可以通过工具和框架提供额外的信息,帮助在编译、部署或运行时进行处理。
86 43
Java学习十六—掌握注解:让编程更简单
|
16天前
|
存储 安全 Java
java.util的Collections类
Collections 类位于 java.util 包下,提供了许多有用的对象和方法,来简化java中集合的创建、处理和多线程管理。掌握此类将非常有助于提升开发效率和维护代码的简洁性,同时对于程序的稳定性和安全性有大有帮助。
39 17
|
12天前
|
Java 大数据 API
14天Java基础学习——第1天:Java入门和环境搭建
本文介绍了Java的基础知识,包括Java的简介、历史和应用领域。详细讲解了如何安装JDK并配置环境变量,以及如何使用IntelliJ IDEA创建和运行Java项目。通过示例代码“HelloWorld.java”,展示了从编写到运行的全过程。适合初学者快速入门Java编程。
|
19天前
|
JavaScript Java 项目管理
Java毕设学习 基于SpringBoot + Vue 的医院管理系统 持续给大家寻找Java毕设学习项目(附源码)
基于SpringBoot + Vue的医院管理系统,涵盖医院、患者、挂号、药物、检查、病床、排班管理和数据分析等功能。开发工具为IDEA和HBuilder X,环境需配置jdk8、Node.js14、MySQL8。文末提供源码下载链接。
|
1月前
|
存储 算法 Java
带你学习java的数组军队列
带你学习java的数组军队列
35 0
|
6月前
|
存储 安全 Java
24、使用 Java 官方教程学习:① 类变量和类方法详解;② 深入介绍 main() 方法
24、使用 Java 官方教程学习:① 类变量和类方法详解;② 深入介绍 main() 方法
86 1
|
6月前
|
存储 Java
【JAVA学习之路 | 进阶篇】Map接口及其实现类及常用方法
【JAVA学习之路 | 进阶篇】Map接口及其实现类及常用方法
|
6月前
|
Java 测试技术 C++
【JAVA学习之路 | 进阶篇】File类及常用方法
【JAVA学习之路 | 进阶篇】File类及常用方法
|
6月前
|
Java
【JAVA学习之路 | 进阶篇】方法引用与构造器引用
【JAVA学习之路 | 进阶篇】方法引用与构造器引用
|
6月前
|
存储 Java
【JAVA学习之路 | 进阶篇】Set及其实现类与常用方法
【JAVA学习之路 | 进阶篇】Set及其实现类与常用方法