java Collections类 详解

2023-05-16

目录

一、前言

二、Collections类简介

三、Collections类常用方法演示

        1.static void reverse(List list) : 

                Δ代码演示 : 

        2.static void shuffle(List list) : 

                Δ代码演示 : 

        3.static void sort(List list) : 

                Δ代码演示 : 

        4.static void sort(List list, Comparator c) : 

                Δ代码演示 : 

        5.static void swap(List list, int i, int j) : 

                Δ代码演示 : 

        6.static T max(Collection coll) : 

                Δ代码演示 : 

        7.static T min(Collection coll) : 

                Δ代码演示 : 

        8.static int frequency(Collection c, Object o) : 

                Δ代码演示 : 

        9.static void copy(List dest, List src) : 

                Δ代码演示 : 

        10.static boolean replaceAll(List list, T oldVal, T newVal) : 

                Δ代码演示 : 

四、完结撒❀


一、前言

        大家好,本篇博文是对java集合篇章之Collections类的内容分享

        注意 : ①代码中的注释也很重要;不要眼高手低,自己跟着敲一遍代码才有收获;点击文章的侧边栏目录或者文章开头的目录可以进行跳转。良工不示人以朴,所有文章都会适时补充完善。大家如果有问题都可以在评论区进行交流或者私信up。感谢阅读!

二、Collections类简介

        Collections类是java提供的一个操作List,Set和Map等集合的工具类。Collections类中提供了一系列操作集合的静态方法,使用这些方法可以实现对集合元素的排序、查询、修改等操作
        Collections类位于java.base模块,java.util包下,如下图所示 :

                再来看一下Collections类的类图,如下 : 
 

三、Collections类常用方法演示

        1.static void reverse(List<?> list) : 

                该方法可以对当前List集合中的元素进行反转,颠倒集合中元素的顺序。

                Δ代码演示 : 

                up以Collections_Demo类为演示类,代码如下 : 

package csdn.knowledge.api_tools.gather.collections;


import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

/**
 * @author : Cyan_RA9
 * @version : 21.0
 */
public class Collections_Demo {
    public static void main(String[] args) {
    //演示 : Collections类常用方法
        List list = new ArrayList();
        list.add(141);
        list.add(233);
        list.add(666);
        list.add(211);
        list.add(11);
        list.add(985);
        list.add(24);
        list.add(5);
        System.out.println("当前集合 = " + list);

        //1.static void reverse(List<?> list) : 反转List集合中元素的顺序
        Collections.reverse(list);
        System.out.println("反转后的集合 = " + list);
    }
}

                运行结果 : 

        2.static void shuffle(List<?> list) : 

                该方法可以对当前List集合进行“洗牌”,对List集合元素进行随机排序,且每次“洗牌”都是随机的。

                Δ代码演示 : 

                仍然以Collections_Demo类为演示类,代码如下 : 

package csdn.knowledge.api_tools.gather.collections;


import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

public class Collections_Demo {
    public static void main(String[] args) {
    //演示 : Collections类常用方法
        List list = new ArrayList();

        list.add("Cyan");
        list.add("RA9");
        list.add("CSDN YYDS");
        list.add("Ice");
        list.add("Bob");
        list.add("Kyrie");
        list.add("Irving");
        System.out.println("当前集合 = " + list);
        //2.static void shuffle(List<?> list) : “洗牌”
        Collections.shuffle(list);
        System.out.println("洗牌后的集合 = " + list);
        Collections.shuffle(list);
        System.out.println("洗牌后的集合 = " + list);
        Collections.shuffle(list);
        System.out.println("洗牌后的集合 = " + list);
    }
}

                运行结果 : 

        3.static void sort(List<T> list) : 

                该方法可以根据元素的自然顺序对指定的List集合进行升序排序。

                Δ代码演示 : 

                仍然以Collections_Demo类为演示类,代码如下 : 

package csdn.knowledge.api_tools.gather.collections;


import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

public class Collections_Demo {
    public static void main(String[] args) {
    //演示 : Collections类常用方法
        List list = new ArrayList();
        list.add(141);
        list.add(233);
        list.add(666);
        list.add(211);
        list.add(11);
        list.add(985);
        list.add(24);
        list.add(5);
        System.out.println("当前集合 = " + list);

        //3.static void sort(List<T> list) : 升序排序
        Collections.sort(list);
        System.out.println("排序后的集合 = " + list);
    }
}

                运行结果 : 

        4.static <T> void sort(List<T> list, Comparator<? super T> c) : 

                该方法可以根据指定的Comparator指定的顺序对指定的List集合进行升序排序。

                Δ代码演示 : 

                仍然以Collections_Demo类为演示类,我们可以通过在匿名内部类中重写compare方法,更改排序的规则,比如说我们可以令List集合降序排列。代码如下 : 

package csdn.knowledge.api_tools.gather.collections;


import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;

public class Collections_Demo {
    public static void main(String[] args) {
    //演示 : Collections类常用方法
        List list = new ArrayList();
        list.add(141);
        list.add(233);
        list.add(666);
        list.add(211);
        list.add(11);
        list.add(985);
        list.add(24);
        list.add(5);
        System.out.println("当前集合 = " + list);

        //4.static <T> void sort(List<T> list, Comparator<? super T> c) : 指定排序
        Collections.sort(list, new Comparator<Object>() {
            @Override
            public int compare(Object o1, Object o2) {
                if (o1 instanceof Integer && o2 instanceof Integer)
                    return (Integer)o2 - (Integer)o1;
                return -1;
            }
        });
        System.out.println("排序后的集合 = " + list);
    }
}

                运行结果 : 

        5.static void swap(List<?> list, int i, int j) : 

                该方法可以将指定List集合中的i元素和j元素进行交换。

                Δ代码演示 : 

                仍然以Collections_Demo类为演示类,代码如下 :  

package csdn.knowledge.api_tools.gather.collections;

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

public class Collections_Demo {
    public static void main(String[] args) {
    //演示 : Collections类常用方法
        List list = new ArrayList();
        list.add(141);
        list.add(233);
        list.add(666);
        list.add(211);
        list.add(11);
        list.add(985);
        list.add(24);
        list.add(5);
        System.out.println("当前集合 = " + list);

        //5.static void swap(List<?> list, int i, int j) : 指向元素进行交换
        Collections.swap(list, 0, list.size() - 1);

        System.out.println("交换元素后的集合 = " + list);
    }
}

                运行结果 :  

        6.static T max(Collection<? extends T> coll) : 

                该方法可以根据元素的自然顺序,获取集合中的最大值。

                Δ代码演示 : 

                仍然以Collections_Demo类为演示类,代码如下 :  

package csdn.knowledge.api_tools.gather.collections;

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

public class Collections_Demo {
    public static void main(String[] args) {
    //演示 : Collections类常用方法
        List list = new ArrayList();
        list.add(141);
        list.add(233);
        list.add(666);
        list.add(211);
        list.add(11);
        list.add(985);
        list.add(24);
        list.add(5);
        System.out.println("当前集合 = " + list);

        //6.static T max(Collection<? extends T> coll) : 获取集合中的最大值
        int max = (int) Collections.max(list);
        
        System.out.println("当前集合中最大的元素 = " + max);
    }
}

                运行结果 : 

        7.static T min(Collection<? extends T> coll) : 

                该方法可以根据元素的自然顺序,获取集合中的最小值。

                Δ代码演示 : 

                仍然以Collections_Demo类为演示类,代码如下 :  

package csdn.knowledge.api_tools.gather.collections;

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

public class Collections_Demo {
    public static void main(String[] args) {
    //演示 : Collections类常用方法
        List list = new ArrayList();
        list.add(141);
        list.add(233);
        list.add(666);
        list.add(211);
        list.add(11);
        list.add(985);
        list.add(24);
        list.add(5);
        System.out.println("当前集合 = " + list);

        //7.static T min(Collection<? extends T> coll) : 获取集合中的最小值
        int min = (int) Collections.min(list);

        System.out.println("当前集合中最大的元素 = " + min);
    }
}

                运行结果 : 

        8.static int frequency(Collection<?> c, Object o) : 

                该方法可以返回指定元素在指定集合中一共出现的次数。

                Δ代码演示 : 

                仍然以Collections_Demo类为演示类,代码如下 :   

package csdn.knowledge.api_tools.gather.collections;

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

public class Collections_Demo {
    public static void main(String[] args) {
    //演示 : Collections类常用方法
        List list = new ArrayList();
        list.add(141);
        list.add(233);
        list.add(666);
        list.add(5);
        list.add(11);
        list.add(11);
        list.add(11);
        list.add(5);
        System.out.println("当前集合 = " + list);

        //8.static int frequency(Collection<?> c, Object o) :获取指定元素在指定集合中出现的次数
        int times_0 = Collections.frequency(list, 11);
        int times_1 = Collections.frequency(list, 233);
        int times_2 = Collections.frequency(list, 5);

        System.out.println("\n11在list集合中出现的次数 = " + times_0);
        System.out.println("233在list集合中出现的次数 = " + times_1);
        System.out.println("5在list集合中出现的次数 = " + times_2);
    }
}

                运行结果 : 

        9.static <T> void copy(List<? super T> dest, List<? extends T> src) : 

                该方法可以将指定的旧集合中的元素拷贝到指定的新集合中。当新集合的长度小于旧集合时,抛出下标越界异常。

                Δ代码演示 : 

                仍然以Collections_Demo类为演示类,代码如下 :   

package csdn.knowledge.api_tools.gather.collections;

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

public class Collections_Demo {
    public static void main(String[] args) {
    //演示 : Collections类常用方法
        List list = new ArrayList();
        list.add(141);
        list.add(233);
        list.add(666);
        list.add(5);
        list.add(11);
        list.add(11);
        list.add(11);
        list.add(5);
        System.out.println("当前集合 = " + list);

        //9.static <T> void copy(List<? super T> dest, List<? extends T> src) : 将旧集合中的内容拷贝到新集合中
        List list2 = new ArrayList();
        try {
            Collections.copy(list2, list);
        } catch (Exception e) {
            System.out.print("新集合的长度小于旧集合时不能直接拷贝,否则抛出以下异常:");
            System.out.println(e.toString());
        }

        for (int i = 0; i < list.size(); ++i) {
            list2.add(null);
        }

        Collections.copy(list2, list);
        System.out.println("拷贝后的新集合 = " + list2);
    }
}

                运行结果 : 

        10.static <T> boolean replaceAll(List<T> list, T oldVal, T newVal) : 

                该方法可以将集合中指定的旧值全部替换为指定的新值。

                Δ代码演示 : 

                仍然以Collections_Demo类为演示类,代码如下 :   

package csdn.knowledge.api_tools.gather.collections;

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

public class Collections_Demo {
    public static void main(String[] args) {
    //演示 : Collections类常用方法
        List list = new ArrayList();

        list.add("Cyan");
        list.add("RA9");
        list.add("CSDN YYDS");
        list.add("Cyan");
        list.add("Cyan");
        list.add("Kyrie");
        list.add("Irving");
        System.out.println("当前集合 = " + list);
        //10.static <T> boolean replaceAll(List<T> list, T oldVal, T newVal) : 用新值替换集合中的旧值
        Collections.replaceAll(list, "Cyan", "Ice");
        System.out.println("将\"Cyan\"全部替换为\"Ice\"后,集合为 = ");
        System.out.println(list);
    }
}

                运行结果 :  

四、完结撒❀

        🆗,以上就是Collections类的全部内容了。内容本身没什么难度,主要是常用方法的汇总和演示,所见即所得。接下来,up将会和大家分享Java——泛型篇章的内容,我们不见不散。感谢阅读!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

java Collections类 详解 的相关文章

随机推荐

  • Debian11连不上网络问题

    有时候可以连上 xff0c 有时候就连不上 连不上的时候 xff0c 使用ifconfig命令 xff0c 只能看到回环接口 xff0c 看不到分配的网络IP地址 最后终于解决了 xff0c 记录一下 xff0c 以防之后出现同样的问题 1
  • 安全策略调整步骤

    1 修改防火墙 xff0c 保留22 SSHD 8081 APACHE 80 关闭端口443 HTTPS 3306 MYSQL 8080 8088 53 123 2 针对PHP的BUG和安全漏洞 xff0c 只有升级版本一途 xff0c 经
  • 获取微信openid(或昵称头像)的授权登录及其代理

    lt php 本页用于微信授权登录及其代理 64 version V2 0 64 author ty1921 lt ty1921 64 gmail com gt 64 param backurl 传get参数backurl xff0c 则授
  • 常用的PHP文件头和HTML5文件头(含移动端)

    lt php PHP Header Created by ty1921 64 gmail com Ver V1 Date 2017 8 18 1 session session start 2 display errors ini set
  • VB+PHP实现在线修改Windows服务器的配置文件

    本文仅供记录 存档备案用 用途 xff1a 某电话转接系统 xff0c 需要每天修改配置文件 并重启服务端程序 原理 xff1a WEB用于展示修改界面 xff0c 提交 保存配置文件的相关数据 VB端用于定时轮训WEB上保存的数据 xff
  • 按键精灵的5级开发认证,笔试题参考

    4题是抄的 xff0c 只是为了过级 最后得93分 xff0c 可能代码还是不够最优 xff0c 有看出的大大希望能不吝指点 1 写一个脚本 xff0c 要求启动时 xff0c 记录 xff08 录制 xff09 当前鼠标的移动轨迹 xff
  • Linux for Ubuntu用gdebi安装deb文件

    在bantu中安装deb文件有时很不方便 xff0c 通常默认用的安装器并效果并不理想 xff0c 有时用命令吧 xff0c 太多又繁琐 所以有个软件叫GDebi xff0c 可以更加有效的帮助安装deb 首先安装gdebi程序 xff0c
  • Xshell连接后又断开问题(Disconnected from remote host)

    Last login Fri Nov 1 12 36 08 2019 from 10 0 1 25 Connection closed by foreign host Disconnected from remote host 20 0 0
  • ubuntu-16.04.6安装教程

    下载Ubuntu16 04 xff08 1 xff09 下载地址 xff1a http releases ubuntu com 16 04 记得要下载iso文件如 ubuntu 16 04 desktop amd64 iso xff0c 3
  • Hive安装详细步骤

    一 下载hive 下载hive 地址 xff1a http mirror bit edu cn apache hive 二 安装mysql 执行以下几个命令安装8 0版本mysql 1 下载MySQLyum源 xff08 8 0版本的 xf
  • LL(1)文法的语法分析java实现

    java代码如下 xff1a package 文法分析器 import java io BufferedReader import java io FileInputStream import java io InputStreamRead
  • CSDN,我的良师益友

    鲁迅曾说过 xff1a 不是缺乏天才 xff0c 而是缺乏培养天才的土壤 对于中国的 IT 行业来说 xff0c 从来不缺乏技术英雄 xff0c 缺少的是铸就技术英雄的平台 而 CSDN 就给了我们这样一个平台和机会 xff0c 所以我们是
  • 构造中小型园区网实训案例

    构造中小型园区网实训案例 一 实验工具与实验拓扑规划1 实验工具2 实验拓扑 二 需求分析三 数据规划四 实施步骤步骤1 xff1a 配置所有终端步骤2 xff1a 配置所有接入层交换机步骤3 xff1a 配置网关路由器AR1 公网路由器A
  • 软件工程复习

    第一章 xff1a 课程概述 1 1 软件危机 1 1 1 计算机软件的四个发展阶段 程序设计阶段 程序系统阶段 软件工程阶段 面向对象阶段 1 1 2 什么是软件危机 xff08 考点 xff09 软件危机是指在计算机软件的开发和维护过程
  • ArrayDeque底层实现

    一 什么是ArrayDeque 1 Deque与Queue 了解这个之前 xff0c 我们要先知道什么是Deque xff0c 它和Queue有什么区别 xff1a 在java中 xff0c Queue被定义成单端队列使用 xff0c De
  • Hive知识点汇总

    HIVE 一 Hive的优化 数据倾斜 xff1a shuffle之后Key的分布不均导致分配到Reduce端的数据不均匀 xff0c 出现个别Reduce的数据过大 xff0c 执行时间过长而出现的现象 1 数据倾斜产生的原因 xff1a
  • CentOS7安装与克隆

    CentOS7安装与克隆 一 新建虚拟机及其配置二 配置虚拟网络编辑器三 安装CentOS 7四 一些工具的安装五 虚拟机克隆六 虚拟机克隆后的配置七 配置ssh免密登陆八 批处理脚本与集群分发脚本1 将家目录配置进环境变量2 批处理脚本3
  • NGINX ./configure详解

    在 34 configure 34 配置中 xff0c with 34 表示启用模块 xff0c 也就是说这些模块在编译时不会自动构建 without 34 表示禁用模块 xff0c 也就是说这些模块在编译时会自动构建 xff0c 若你想N
  • Linux下Nginx安装使用

    一 下载解压nginx span class token comment 进入要放安装包的目录 span span class token builtin class name cd span opt software span class
  • java Collections类 详解

    目录 一 前言 二 Collections类简介 三 Collections类常用方法演示 1 static void reverse List list 代码演示 2 static void shuffle List list 代码演示