【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集合类介绍 的相关文章

  • 插入最大日期(独立于数据库)

    在我的本地设置中 我使用一个简单的 H2 数据库 托管 解决方案将有另一个 类似但不相同 数据库 我需要将最大可能日期插入到日期时间列中 我尝试使用 Instant MAX 但是 这会导致列中出现 169104626 12 11 20 08
  • 如何创建一个显示 Spinners 的 x 和 y 值的表格?

    我想创建一个位于图表右侧的表格 其中显示 2 列 x 和 y 值已输入到xSpin and ySpin旋转器 我已经画了一张我想要桌子放置的位置的图 我尝试过在网格窗格布局中使用文本框来创建表格并将值直接输入到文本框网格中 但是我无法将它们
  • OSGi:如果不取消服务会发生什么

    这是我获取 OSGi 服务的方式 ServiceReference reference bundleContext getServiceReference Foo class getName Foo foo Foo bundleContex
  • Java AES 128 加密方式与 openssl 不同

    我们遇到了一种奇怪的情况 即我们在 Java 中使用的加密方法会向 openssl 生成不同的输出 尽管它们在配置上看起来相同 使用相同的键和 IV 文本 敏捷的棕色狐狸跳过了懒狗 加密为 Base64 字符串 openssl A8cMRI
  • JAVA - Xuggler - 组合 MP3 音频文件和 MP4 电影时播放视频

    使用 JAVA 和 Xuggler 以下代码组合 MP3 音频文件和 MP4 电影文件并输出组合的 mp4 文件 我希望在合并音频和视频文件时应自动播放输出视频文件 String inputVideoFilePath in mp4 Stri
  • java中如何连接字符串

    这是我的字符串连接代码 StringSecret java public class StringSecret public static void main String args String s new String abc s co
  • 按第一列排序二维数组,然后按第二列排序

    int arrs 1 100 11 22 1 11 2 12 Arrays sort arrs a b gt a 0 b 0 上面的数组已排序为 1 100 1 11 2 12 11 22 我希望它们按以下方式排序a 0 b 0 首先 如果
  • 当从服务类中调用时,Spring @Transactional 不适用于带注释的方法

    在下面的代码中 当方法内部 是从内部调用的方法外部 应该在交易范围内 但事实并非如此 但当方法内部 直接从调用我的控制器class 它受到事务的约束 有什么解释吗 这是控制器类 Controller public class MyContr
  • Java 文件上传速度非常慢

    我构建了一个小型服务 它从 Android 设备接收图像并将其保存到 Amazon S3 存储桶中 代码非常简单 但是速度非常慢 事情是这样的 public synchronized static Response postCommentP
  • Hazelcast 分布式锁与 iMap

    我们目前使用 Hazelcast 3 1 5 我有一个简单的分布式锁定机制 应该可以跨多个 JVM 节点提供线程安全性 代码非常简单 private static HazelcastInstance hInst getHazelcastIn
  • Calendar.getInstance(TimeZone.getTimeZone("UTC")) 不返回 UTC 时间

    我对得到的结果真的很困惑Calendar getInstance TimeZone getTimeZone UTC 方法调用 它返回 IST 时间 这是我使用的代码 Calendar cal Two Calendar getInstance
  • 使用 scala 集合 - CanBuildFrom 麻烦

    我正在尝试编写一个接受任何类型集合的方法CC 并将其映射到一个新的集合 相同的集合类型但不同的元素类型 我正在挣扎 基本上我正在尝试实施map but 不在集合本身上 问题 我正在尝试实现一个带有签名的方法 它看起来有点像 def map
  • 在游戏视图下添加 admob

    我一直试图将 admob 放在我的游戏视图下 这是我的代码 public class HoodStarGame extends AndroidApplication Override public void onCreate Bundle
  • IntelliJ - 调试模式 - 在程序内存中搜索文本

    我正在与无证的第三方库合作 我知道有一定的String存储在库深处的某个字段中的某处 我可以预测的动态值 但我想从库的 API 中获取它 有没有一种方法可以通过以下方式进行搜索 类似于全文搜索 full程序内存处于调试模式并在某个断点处停止
  • Cucumber Java 与 Spring Boot 集成 - Spring @Autowired 抛出 NullPointer 异常

    我正在为 Spring boot 应用程序编写 cucumber java 单元测试来测试每个功能 当我与 Spring Boot 集成时 Autowired 类抛出 NullPointer 异常 Spring Boot应用程序类 Spri
  • HQL Hibernate 内连接

    我怎样才能在 Hibernate 中编写这个 SQL 查询 我想使用 Hibernate 来创建查询 而不是创建数据库 SELECT FROM Employee e INNER JOIN Team t ON e Id team t Id t
  • 为什么C++代码执行速度比java慢?

    我最近用 Java 编写了一个计算密集型算法 然后将其翻译为 C 令我惊讶的是 C 的执行速度要慢得多 我现在已经编写了一个更短的 Java 测试程序和一个相应的 C 程序 见下文 我的原始代码具有大量数组访问功能 测试代码也是如此 C 的
  • 为什么这个作业不起作用?

    我有课Results which extends ArrayList
  • FileOutputStream.close() 中的设备 ioctl 不合适

    我有一些代码可以使用以下命令将一些首选项保存到文件中FileOutputStream 这是我已经写了一千遍的标准代码 FileOutputStream out new FileOutputStream file try BufferedOu
  • hashcode 的默认实现为以相同方式构造的对象返回不同的值

    我在这里编写一个示例代码 public class Test private int i private int j public Test TODO Auto generated constructor stub public Test

随机推荐

  • 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