【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包了起来.
相关文章
|
3天前
|
Java
JAVA高级部分学习小结(2023.11.4)
JAVA高级部分学习小结(2023.11.4)
|
3天前
|
Java 数据安全/隐私保护
JAVA中MD5加密(MD5工具类)
JAVA中MD5加密(MD5工具类)
8 1
|
3天前
|
Java
排名前16的Java工具类
排名前16的Java工具类
5 0
|
8天前
|
算法 Java 测试技术
滚雪球学Java(54):从零开始学习Java中的Math类,轻松解决数学难题
【6月更文挑战第8天】🏆本文收录于「滚雪球学Java」专栏,专业攻坚指数级提升,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!!
15 0
滚雪球学Java(54):从零开始学习Java中的Math类,轻松解决数学难题
|
9天前
|
Java
Java线程学习经典例子-读写者演示
Java线程学习经典例子-读写者演示
8 0
|
11天前
|
存储 并行计算 Java
Java8中JUC包同步工具类深度解析(Semaphore,CountDownLatch,CyclicBarrier,Phaser)
Java8中JUC包同步工具类深度解析(Semaphore,CountDownLatch,CyclicBarrier,Phaser)
14 2
|
15天前
|
JavaScript Java 测试技术
Java项目基于ssm+vue.js的网络类课程思政学习系统附带文章和源代码设计说明文档ppt
Java项目基于ssm+vue.js的网络类课程思政学习系统附带文章和源代码设计说明文档ppt
15 0
|
Java
Java扑克牌(洗牌Collections.shuffle)
Java扑克牌(洗牌Collections.shuffle)
195 0
Java扑克牌(洗牌Collections.shuffle)
|
4天前
|
安全 Java API
Java并发基础-启动和终止线程
Java并发基础-启动和终止线程
13 0
|
4天前
|
Java 调度
Java并发基础-线程简介(状态、常用方法)
Java并发基础-线程简介(状态、常用方法)
8 0