【Java】Collections集合类介绍

2023-05-16

Collections集合类介绍

Collections 是一个操作Set、List和Map等集合的工具类,提供了一系列静态方法对集合元素进行排序、查询和修改等操作。

1、排序操作

(1)reverse(List):反转List中元素的顺序;

        System.out.println(list);
        /*(1)reverse(List):反转List中元素的顺序;*/
        System.out.println("=====反转顺序后=====");
        System.out.println(list);

代码运行结果:
在这里插入图片描述
(2)shuffle(List):对List集合元素进行随机排序;

        /*(2)shuffle(List):对List集合元素进行随机排序*/
        for (int i = 0; i < 5; i++) {
             Collections.shuffle(list);
             System.out.println("第"+(i+1)+"次随机排序:"+list);
             }

代码运行结果:
在这里插入图片描述

(3)sort(List):根据元素的自然顺序对指定List集合元素按升序排序;

        /*(3)sort(List):根据元素的自然顺序对指定List集合元素按升序排序*/
        Collections.sort(list);
        System.out.println("=====自然顺序后=====");
        System.out.println(list);

代码运行结果:
在这里插入图片描述

(4)sort(List,Comparator):根据指定的Comparator产生的顺序对List集合元素进行排序;
①按指定的字符串大小排序

        /*(4)sort(List,Comparator):根据指定的Comparator产生的顺序对List集合元素进行排序*/
        Collections.sort(list,new Comparator(){
            @Override
        public int compare(Object o1,Object o2)
        {
            return ((String) o1).length()-((String) o2).length();
            }

        });
        System.out.println("=====按指定字符串长度大小排序后=====");
        System.out.println(list);

代码运行结果:
在这里插入图片描述
②按指定的字符串字母大小顺序排序

        /*(4)sort(List,Comparator):根据指定的Comparator产生的顺序对List集合元素进行排序*/
        Collections.sort(list,new Comparator(){
            @Override
            public int compare(Object o1,Object o2)
            {
                return ((String) o1).compareTo((String) o2);
            }

        });
        System.out.println("=====按指定字符串字母大小顺序排序后=====");
        System.out.println(list);

代码运行结果:
在这里插入图片描述

(5)swap(List,int i,int j):将指定List集合中的i处元素和j处元素进行交换;

         /*(5)swap(List,int i,int j):将指定List集合中的i处元素和j处元素进行交换*/
        Collections.swap(list,0,1);
        System.out.println("=====交换顺序后=====");
        System.out.println(list);

代码运行结果:
在这里插入图片描述

2、查找、替换操作

(1)Object max(List):根据元素的自然顺序,返回给定集合中的最大元素;

        /*(1)Object max(List):根据元素的自然顺序,返回给定集合中的最大元素*/
        Object max = Collections.max(list);
        System.out.println("根据元素的自然顺序,返回给定集合中的最大元素:"+max);

代码运行结果:
在这里插入图片描述

(2)Object max(Collection,Comparator):根据Comparator指定的顺序,返回给定集合中的最大元素;
① 根据给的的字符串长度大小顺序,返回给定集合中的最大元素

       Object max = Collections.max(list, new Comparator() {
            @Override
            public int compare(Object o1,Object o2){
                return ((String) o1).length()-((String) o2).length();
            }
        });
        System.out.println("根据给定的字符串长度大小顺序,返回给定集合中的最大元素:"+max);

在这里插入图片描述
② 根据给的的字符串字母大小顺序,返回给定集合中的最大元素

       Object max = Collections.max(list,new Comparator(){
            public int compare(Object o1,Object o2){
                return ((String) o1).compareTo((String) o2);
            }
        });
        System.out.println("根据给定的字符串字母大小顺序,返回给定集合中的最大元素:"+max);

代码运行结果:
在这里插入图片描述

(3)int frequency(List,Object):返回指定集合中指定元素的出现次数;

        /*(3)int frequency(List,Object):返回指定集合中指定元素的出现次数*/
        int num =Collections.frequency(list,"tom");
        System.out.println("指定集合中”tom“的出现次数:"+num);

代码运行结果:
在这里插入图片描述

(4)void copy(List dest,List src):将src的内容复制到dest中;

       /*(4)void copy(List dest,List src):将src的内容复制到dest中*/
        List src = new ArrayList();
        src.add("三国演义");
        src.add("水浒传");
        src.add("西游记");
        src.add("红楼梦");
        List dec = new ArrayList();
        System.out.println("====src====");
        System.out.println(src);
        /*为了完成一个完整拷贝,我们需要先给dest 赋值,大小和src.size()一样*/
        for (int i = 0; i < src.size(); i++) {
            dec.add(i+1);
        }
        System.out.println("====dec====");
        System.out.println(dec);
        Collections.copy(dec,src);
        System.out.println("=====将src的内容复制到dec后=====");
        System.out.println(dec);

代码运行结果:
在这里插入图片描述

(5)Boolean replaceAll(List list,Object oldVal,Object newVal):使用新值替换List对象的所有旧值。

        /*(5)Boolean replaceAll(List list,Object oldVal,Object newVal):使用新值替换List对象的所有旧值*/
        Collections.replaceAll(list,"tom","DMS" );
        System.out.println("=====将list中的所有“Tom”替换成“DMS”后=====");
        System.out.println(list);

代码运行结果:
在这里插入图片描述

3、完整代码

import java.util.*;
public class Collectons_ {
    public static void main(String[] args){
        /*创建ArrayList 集合,用于测试*/
        List list = new ArrayList();
        list.add("tom");
        list.add("smith");
        list.add("king");
        list.add("milan");
        list.add("tom");

        System.out.println(list);
       /* *//*(1)reverse(List):反转List中元素的顺序;*//*
        System.out.println("=====反转顺序后=====");
        System.out.println(list);*/
        /*(2)shuffle(List):对List集合元素进行随机排序*/
       /* for (int i = 0; i < 5; i++) {
             Collections.shuffle(list);
             System.out.println("第"+(i+1)+"次随机排序:"+list);
             }*/
        /*(3)sort(List):根据元素的自然顺序对指定List集合元素按升序排序*/
        /*Collections.sort(list);
        System.out.println("=====自然顺序后=====");
        System.out.println(list);*/
       /* *//*(4)sort(List,Comparator):根据指定的Comparator产生的顺序对List集合元素进行排序*//*
        Collections.sort(list,new Comparator(){
            @Override
        public int compare(Object o1,Object o2)
        {
            return ((String) o1).length()-((String) o2).length();
            }

        });
        System.out.println("=====按指定字符串长度大小排序后=====");
        System.out.println(list);*/
        /*(4)sort(List,Comparator):根据指定的Comparator产生的顺序对List集合元素进行排序*//*
        Collections.sort(list,new Comparator(){
            @Override
            public int compare(Object o1,Object o2)
            {
                return ((String) o1).compareTo((String) o2);
            }

        });
        System.out.println("=====按指定字符串字母大小顺序排序后=====");
        System.out.println(list);*/

      /*  *//*(5)swap(List,int i,int j):将指定List集合中的i处元素和j处元素进行交换*//*
        Collections.swap(list,0,1);
        System.out.println("=====交换顺序后=====");
        System.out.println(list);*/
        /*(1)Object max(List):根据元素的自然顺序,返回给定集合中的最大元素*//*
        Object max = Collections.max(list);
        System.out.println("根据元素的自然顺序,返回给定集合中的最大元素:"+max);*/

        /*(2)Object max(Collection,Comparator):根据Comparator指定的顺序,返回给定集合中的最大元素*/
       /* Object max = Collections.max(list, new Comparator() {
            @Override
            public int compare(Object o1,Object o2){
                return ((String) o1).length()-((String) o2).length();
            }
        });
        System.out.println("根据给定的字符串长度大小顺序,返回给定集合中的最大元素:"+max);*/
        /*(2)Object max(Collection,Comparator):根据Comparator指定的顺序,返回给定集合中的最大元素*/
       /* Object max = Collections.max(list,new Comparator(){
            public int compare(Object o1,Object o2){
                return ((String) o1).compareTo((String) o2);
            }
        });
        System.out.println("根据给定的字符串字母大小顺序,返回给定集合中的最大元素:"+max);*/
       /* *//*(3)int frequency(List,Object):返回指定集合中指定元素的出现次数*//*
        int num =Collections.frequency(list,"tom");
        System.out.println("指定集合中”tom“的出现次数:"+num);*/

       /* *//*(4)void copy(List dest,List src):将src的内容复制到dest中*//*
        List src = new ArrayList();
        src.add("三国演义");
        src.add("水浒传");
        src.add("西游记");
        src.add("红楼梦");
        List dec = new ArrayList();
        System.out.println("====src====");
        System.out.println(src);
        *//*为了完成一个完整拷贝,我们需要先给dest 赋值,大小和src.size()一样*//*
        for (int i = 0; i < src.size(); i++) {
            dec.add(i+1);
        }
        System.out.println("====dec====");
        System.out.println(dec);
        Collections.copy(dec,src);
        System.out.println("=====将src的内容复制到dec后=====");
        System.out.println(dec);*/
        /*(5)Boolean replaceAll(List list,Object oldVal,Object newVal):使用新值替换List对象的所有旧值*/
        Collections.replaceAll(list,"tom","DMS" );
        System.out.println("=====将list中的所有“Tom”替换成“DMS”后=====");
        System.out.println(list);
    }
}

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

【Java】Collections集合类介绍 的相关文章

  • 按下按钮并在java中的新窗口中打开文件

    我创建了一个 JFrame 并放置了一个文本字段和按钮 在文本字段中我放置了从文本文件读取的名称 我知道我想单击按钮并打开一个已知窗口 我想在其中放置名称 其他信息来自同一个文件 这是我的代码 这是我的主框架 package Fronten
  • 带路径压缩算法的加权 Quick-Union

    有一种 带路径压缩的加权快速联合 算法 代码 public class WeightedQU private int id private int iz public WeightedQU int N id new int N iz new
  • 如何在 JavaFX 中连接可观察列表?

    我所说的串联是指获得一个新列表 该列表侦听所有串联部分的更改 方法的目的是什么FXCollections concat ObservableList
  • 垃圾收集器如何在幕后工作来收集死对象?

    我正在阅读有关垃圾收集的内容 众所周知 垃圾收集会收集死亡对象并回收内存 我的问题是 Collector 如何知道任何对象已死亡 它使用什么数据结构来跟踪活动对象 我正在研究这个问题 我发现GC实际上会跟踪活动对象 并标记它们 每个未标记的
  • 什么是抽象类? [复制]

    这个问题在这里已经有答案了 当我了解抽象类时 我说 WT H 问题 创建一个无法实例化的类有什么意义呢 为什么有人想要这样的课程 什么情况下需要抽象类 如果你明白我的意思 最常见的是用作基类或接口 某些语言有单独的interface构建 有
  • Jframe 内有 2 个 Jdialogs 的 setModal 问题

    当我设置第一个选项时 我遇到了问题JDialog模态 第二个非模态 这是我正在尝试实现的功能 单击 测试对话框 按钮 一个JDialog有名字自定义对话框 主要的将会打开 如果单击 是 选项自定义对话框主 其他JDialog named 自
  • Android studio - 如何保存先前活动中选择的数据

    这是我的代码片段 这Textview充当按钮并具有Onclicklistner在他们 当cpu1000时Textview单击它会导致cpu g1000其代码如下所示的类 public class Game 1000 extends AppC
  • 提供节点名或服务名,或未知 Java

    最近我尝试运行我的 Java 项目 每当我运行它并将其打开到我得到的服务器地址时 Unable to determine host name java net UnknownHostException Caused by java net
  • 如何在 Spring 中使 @PropertyResource 优先于任何其他 application.properties ?

    我正在尝试在类路径之外添加外部配置属性资源 它应该覆盖任何现有的属性 但以下方法不起作用 SpringBootApplication PropertySource d app properties public class MyClass
  • 如何在java中将日期格式从YYMMDD更改为YYYY-MM-DD? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我从机器可读代码中获取日期格式为 YYMMDD 如何将其更改为 YYYY MM DD 例如我收到 871223 YYMMDD 我想把它改成
  • 如何仅从 Firestore 获取最新更新的数据?

    在 Firestore 上发现任何更改时始终获取整个文档 如何只获取最近更新的数据 这是我的数据 我需要在第一次加载时在聊天中按对象顺序 例如 2018 09 17 30 40 msg和sendby 并且如果数据更新则仅获取新的msg和se
  • 将人类日期(当地时间 GMT)转​​换为日期

    我正在服务器上工作 服务器正在向我发送 GMT 本地日期的日期 例如Fri Jun 22 09 29 29 NPT 2018在字符串格式上 我将其转换为日期 如下所示 SimpleDateFormat simpleDateFormat ne
  • 如何在 ant 中为 junit 测试设置 file.encoding?

    我还没有完全完成file encoding 和 ant https stackoverflow com questions 1339352 how do i set dfile encoding within ants build xml
  • Akka 与现有 java 项目集成的示例

    如果我已经有现有的javaWeb 应用程序使用spring and servlet容器 将 Akka 集成到其中的正确方法是什么 就像我将会有Actor1 and Actor2互相沟通的 开始使用这些演员的切入点是什么 例如 1 把它放在那
  • 如何在.NET中使用java.util.zip.Deflater解压缩放气流?

    之后我有一个转储java util zip Deflater 可以确认它是有效的 因为 Java 的Inflater打开它很好 并且需要在 NET中打开它 byte content ReadSample sampleName var inp
  • Java继承,扩展类如何影响实际类

    我正在查看 Sun 认证学习指南 其中有一段描述了最终修饰符 它说 如果程序员可以自由地扩展我们所知的 String 类文明 它可能会崩溃 他什么意思 如果可以扩展 String 类 我是否不会有一个名为 MyString 的类继承所有 S
  • 轻松的反应

    我有一个与这里描述的类似的案例 动态更改RESTEasy服务返回类型 https stackoverflow com questions 3786781 dynamically change resteasy service return
  • Java Swing - 如何禁用 JPanel?

    我有一些JComponents on a JPanel我想在按下 开始 按钮时禁用所有这些组件 目前 我通过以下方式显式禁用所有组件 component1 setEnabled false 但是有什么办法可以一次性禁用所有组件吗 我尝试禁用
  • 将 JScrollPane 添加到 JFrame

    我有一个关于向 Java 框架添加组件的问题 我有一个带有两个按钮的 JPanel 和一个添加了 JTable 的 JScrollPane 我想将这两个添加到 JFrame 中 我可以将 JPanel 添加到 JFrame 或将 JScro
  • 抛出 Java 异常时是否会生成堆栈跟踪?

    这是假设我们不调用 printstacktrace 方法 只是抛出和捕获 我们正在考虑这样做是为了解决一些性能瓶颈 不 堆栈跟踪是在构造异常对象时生成的 而不是在抛出异常对象时生成的 Throwable 构造函数调用 fillInStack

随机推荐

  • FusionCompute8.0.0实验(0)CNA及VRM安装(2280v2)

    给公司的华为泰山2280V2服务器安装CNA xff0c arm架构的 xff0c 采用方案为CNA和VRM在一个物理机上 准备文件 xff1a FusionCompute VRM 8 0 0 ARM 64 zip FusionComput
  • 网上买的st7789v3屏幕7脚的不能显示(1)

    今天通过网上购买了一款最便宜的1 3寸液晶显示屏分辨率240x240 xff0c 虽然小了一点 xff0c 但是看起来还不错 xff0c 于是准备了以前的用于驱动st7789的程序 xff0c 连接所有的引脚 xff0c 发现没有cs引脚
  • 新版idea中的terminal会打开windows的power shell窗口

    IDEA升级后发现点击terminal不会像之前一样显示在ide的底部而是会打开windows的Power Shell窗口 xff0c 此时需要找到windows Power Shell的位置右键属性在选项中 xff0c 取消勾选 使用旧版
  • 如何在非/home目录下下载安装vscode-server

    实现目标 xff1a 通过windows端的VSCODE xff0c 利用SSH工具在Ubuntu服务器的非 home目录下在下载安装vscode server 问题 xff1a 服务器 home文件夹剩余空间为0 xff0c 使用SSH工
  • Python 求解最大连通子网络问题

    记录一下不借助networkx包解决寻找最大连通子网络问题 这里没有源码 xff0c 只有问题解析 需要自己动手 这里是关键代码 xff1a span class token keyword for span i in span class
  • @Configuration的使用 和作用

    原文 从Spring3 0 xff0c 64 Configuration用于定义配置类 xff0c 可替换xml配置文件 xff0c 被注解的类内部包含有一个或多个被 64 Bean注解的方法 xff0c 这些方法将会被Annotation
  • @Component和@Configuration

    64 configuration和 64 component之间的区别是 xff1a 64 Component注解的范围最广 xff0c 所有类都可以注解 xff0c 但是 64 Configuration注解一般注解在这样的类上 xff1
  • zookeeper笔记

    ZooKeeper对分布式系统的协调 xff0c 使 共享存储解决分布式系统 临的问题 其实共享存储 xff0c 分布式应 也需要和存储进 络通信 大多数分布式系统中出现的问题 xff0c 都源于信息的共享出了问题 如果各个节点间信息不能及
  • Dubbo

    1 分布式架构 xff08 SOA 分层 按照业务性质分层 每一层要求简单 和 容易维护 应用层 距离用户最近的一层 也称之为接入层 使用tomcat 作为web容器 接收用户请求 使用下游的dubbo提供的接口来返回数据并且该层禁止访问数
  • Java的对象模型

    原文链接 对象在堆内存的布局分为三个区域 xff1a 分别是对象头 xff08 Header xff09 实例数据 xff08 Instance Data xff09 对齐填充 xff08 Padding xff09 对象头 xff1a 对
  • CopyOnWriterArrayList

    CopyOnWrite CopyOnWrite容器即写时复制的容器 通俗的理解是当我们往一个容器添加元素的时候 xff0c 不直接往当前容器添加 xff0c 而是先将当前容器进行Copy xff0c 复制出一个新的容器 xff0c 然后新的
  • Java 并发编程一篇 -(Synchronized 原理、LockSupport 原理、ReentrantLock 原理)

    并发编程已完结 xff0c 章节如下 xff1a Java 并发编程一篇 xff08 Synchronized 原理 LockSupport 原理 ReentrantLock 原理 xff09 Java 并发编程二篇 xff08 JMM C
  • Google离开我们已经快十年

    2010年1月13日 xff0c Google离开中国 掐指算来 xff0c Google已经离开我们快十年了 2010年是个特殊的年份 xff0c 这一年还发生了3Q大战 为什么诸多大事都发生在2010年 就是因为2010年是PC Web
  • Java 并发编程四篇 -(JUC、AQS 源码、ReentrantLock 源码)

    并发编程已完结 xff0c 章节如下 xff1a Java 并发编程一篇 xff08 Synchronized 原理 LockSupport 原理 ReentrantLock 原理 xff09 Java 并发编程二篇 xff08 JMM C
  • 在 IDEA 中的各种调试技巧,轻松定位 Bug(超级全面)

    原文地址
  • 20210721复盘

    1 在大厂中用的是java8吗 xff1f 还是更高版本的 xff1f 基本都是8 xff0c 一些老项目是7 2 远程面试的时候让写算法题 xff0c 是线上写还是用纸写还是用面试公司开发的工具写 xff1f 会有方法输入提示吗 xff1
  • 解决No plugin found for prefix ‘archetype‘ in the current project and in the plugin groups

    建立Maven项目时 xff0c 在cmd输入mvn archetype generate命令后出现了标题的报错 xff0c 我在settings xml里面配置的mirror是阿里云 xff0c 尝试了网上的好几个解决方案都不行 xff0
  • RocketMQ介绍和简单使用

    RocketMq下载安装 下载网址 xff1a http rocketmq apache org dowloading releases 系统要求64bit Linux Unix或Mac JDK版本 gt 61 1 8 解压后其中的目录文件
  • 如何在Oracle官网下载java的JDK最新版本和历史版本

    1 打开Oracle官网 xff0c 准备下载JDK 下载时需要使用注册用户登陆 xff0c 可以免费注册 地址 xff1a https developer oracle com 2 点击Downloads xff0c 并选择Java SE
  • 【Java】Collections集合类介绍

    Collections集合类介绍 Collections 是一个操作Set List和Map等集合的工具类 xff0c 提供了一系列静态方法对集合元素进行排序 查询和修改等操作 1 排序操作 xff08 1 xff09 reverse Li