Collections工具类(java)

news2024/10/7 8:22:43

Collections工具类

  • java.util.Collections; 是集合的工具类
  • 作用:Collections不是集合,而是集合的工具类

Collections常用的API

方法名称说明
public static <T> boolean addAll(Collection<T> c,T... elements)批量添加元素
public static void shuffle(List<?> list)打乱list集合元素的顺序
public static <T> void sort(List<T> list)排序
public static <T> void sort(List<T> list, Comparator<T> c)根据指定的规则进行排序
public static <T> int binarySearch(List<T> list,T key)以二分查找法查找元素
public static <T> void copy (List<T> dest,List<T> src)拷贝集合中的元素
public static <T> int fill(List<T> list, T obj)使用指定的元素填充集合
public static <T> void max/min(Collection<T> coll)根据默认的自然排序获取最大/最小值
public static <T> void swap(List<?> list, int i, int j)交换集合中指定的位置的元素

代码展示

添加元素并打乱

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

public class CollectionsDemo {
    public static void main(String[] args) {
        ArrayList<String> list = new ArrayList<>();

        //批量添加元素
        Collections.addAll(list, "a", "b", "c", "d");
        System.out.println(list);

        //打乱集合中的元素顺序
        Collections.shuffle(list);
        System.out.println(list);
    }
}

排序

//默认升序
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;

public class CollectionsDemo {
    public static void main(String[] args) {
        ArrayList<String> list = new ArrayList<>();

        //批量添加元素
        Collections.addAll(list, "a", "b", "c", "d");
        System.out.println(list);

        //打乱集合中的元素顺序
        Collections.shuffle(list);
        System.out.println(list);

        //排序
        Collections.sort(list);
        System.out.println(list);
    }
}

Collections sort1

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

public class CollectionsDemo {
    public static void main(String[] args) {
        ArrayList<String> list = new ArrayList<>();

        //批量添加元素
        Collections.addAll(list, "a", "b", "c", "d");
        System.out.println(list);

        //打乱集合中的元素顺序
        Collections.shuffle(list);
        System.out.println(list);

        //根据指定规则进行排序
        Collections.sort(list, new Comparator<String>() {
            @Override
            public int compare(String o1, String o2) {
                return o2.compareTo(o1);
            }
        });
        System.out.println(list);
    }
}

Collections sort2

以二分法查找元素

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

public class CollectionsDemo {
    public static void main(String[] args) {
        ArrayList<String> list = new ArrayList<>();

        //批量添加元素
        Collections.addAll(list, "a", "b", "c", "d");
        System.out.println(list);

        //打乱集合中的元素顺序
        Collections.shuffle(list);
        System.out.println(list);

        //以二分法查找元素
        Collections.sort(list);
        int binarySearch = Collections.binarySearch(list, "a");
        System.out.println(binarySearch);
        /*
        使用二分搜索法搜索指定列表,以获得指定对象。
        在进行此调用之前,必须根据列表元素的自然顺序对列表进行升序排序(通过 sort(List) 方法)。
        如果没有对列表进行排序,则结果是不确定的。
        如果列表包含多个等于指定对象的元素,则无法保证找到的是哪一个。
         */
    }
}

Collections binarySearch

拷贝元素

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

public class CollectionsDemo {
    public static void main(String[] args) {
        ArrayList<String> list = new ArrayList<>();

        //批量添加元素
        Collections.addAll(list, "a", "b", "c", "d");
        System.out.println(list);

        //打乱集合中的元素顺序
        Collections.shuffle(list);
        System.out.println(list);

        //拷贝集合中的元素
        ArrayList<String> list1 = new ArrayList<>();
        Collections.addAll(list1, "1", "2", "3", "4");
        Collections.copy(list1, list);
        System.out.println(list1);
        System.out.println(list);

    }
}

Collections copy

根据默认的自然排序获取最大/最小值

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

public class CollectionsDemo {
    public static void main(String[] args) {
        ArrayList<String> list = new ArrayList<>();

        //批量添加元素
        Collections.addAll(list, "a", "b", "c", "d");
        System.out.println(list);

        //打乱集合中的元素顺序
        Collections.shuffle(list);
        System.out.println(list);
        
        //根据默认的自然排序获取最大/最小值
        String max = Collections.max(list);
        System.out.println(max);

        String min = Collections.min(list);
        System.out.println(min);

    }
}

Collections max、min

交换集合中的指定位置的元素

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

public class CollectionsDemo {
    public static void main(String[] args) {
        ArrayList<String> list = new ArrayList<>();

        //批量添加元素
        Collections.addAll(list, "a", "b", "c", "d");
        System.out.println(list);

        //打乱集合中的元素顺序
        Collections.shuffle(list);
        System.out.println(list);

        //交换集合中指定的位置的元素
        Collections.sort(list);
        Collections.swap(list, 0, 3);
        System.out.println(list);
    }
}

Collections swap

使用指定的元素填充集合

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

public class CollectionsDemo {
    public static void main(String[] args) {
        ArrayList<String> list = new ArrayList<>();

        //批量添加元素
        Collections.addAll(list, "a", "b", "c", "d");
        System.out.println(list);

        //打乱集合中的元素顺序
        Collections.shuffle(list);
        System.out.println(list);

        //使用指定的元素填充集合
        Collections.fill(list, "f");
        System.out.println(list);

    }
}

Collections fill
链接: Collections工具类综合练习

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/598167.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

MySQL秘籍:让你的表操作炉火纯青

&#x1f495;每个人都有自己的一生&#xff0c;不要和别人去比较。比较只会让你感到沮丧和不满足。关注自己的成长和进步&#xff0c;并享受属于自己的旅程。 &#x1f495; &#x1f43c;作者&#xff1a;不能再留遗憾了&#x1f43c; &#x1f386;专栏&#xff1a;MySQL学习…

【LeetCode】11,盛最多水的容器。 难度等级:中等。双指针解法值得深入学习。

文章目录 一、题目二、我的解法&#xff1a;双重for循环&#xff0c;超出时间限制三、最优解法&#xff1a;双指针从两侧开始遍历 【LeetCode】11&#xff0c;盛最多水的容器。 难度等级&#xff1a;中等。 一、题目 给定一个长度为 n 的整数数组 height 。有 n 条垂线&#x…

小米、华为、海尔竞争中,全屋智能「崛起」2023

智能家居进入下半场&#xff0c;互联网大厂凭借着自身的流量红利收割了一部分市场份额&#xff1b;家电企业在向家装企业转型的过程中&#xff0c;也有其自带的流量优势和渠道优势&#xff1b;通信厂商借着“链接”优势&#xff0c;三大阵营在智能家居行业都各占鳌头。 作者|思…

NPM 制作命令行工具 - 进阶辅助库

一、简介 通过 NPM 制作命令行工具 - 入门案例 已经基本知道如何制作命令行工具了&#xff0c;现在就是内部命令处理。 如果不使用第三方插件辅助&#xff0c;那就只能对传入的参数进行一个一个判断处理&#xff0c;添加注释&#xff0c;这是很麻烦的&#xff0c;所以&#xf…

移动端开发之基础知识:视口、三倍图、移动端开发选择、移动端技术解决方案、移动端常见布局

移动端开发之流式布局 移动端基础浏览器现状手机屏幕现状移动端调试方法 视口布局视口视觉视口理想视口总结&#xff1a; meta视口标签标准的viewport设置 三倍图物理像素&物理像素比多倍图背景缩放 background-size背景图三倍图 多倍图切图 cutterman 移动端开发选择移动端…

基于JavaWeb的私人牙科诊所管理系统

目录 1、项目背景 2、项目目标 3、项目功能 4、系统架构 5、项目源码 6、论文目录&#xff08;16000字&#xff09; 1、项目背景 在当前社会医疗水平的高速发展下&#xff0c;口腔方面的医疗在社会上不断发展壮大。私人化牙科诊所呈现蓬勃发展的趋势&#xff0c;各方面的…

【JavaSE】方法的使用--05

目录 一、方法的概念与使用 1.1 什么是方法 1.2 方法的定义 1.3 方法调用的执行过程 1.4 实参和形参的关系&#xff08;重要&#xff09; 1.5 有无返回值的方法 二、方法的重载 2.1 方法重载的概念 2.2 方法重载的要求 2.3 方法签名 前言&#xff1a; 之前很久没写这…

python基础----01-----环境搭建

一 python介绍 1.1 Python 特点 Python 是完全面向对象的语言。函数、模块、数宁、宁符串都是对象&#xff0c;在 Python 中一切皆对象。完全支持继承、重载、多重继承。支持重载运算符&#xff0c;也支持泛型设计。Python 拥有一个强大的标准库&#xff0c;Python 语言的核心…

谷云科技受邀出席2023华南CIO大会-应用与数据集成专家

2023年6月10-11日&#xff0c;我们将于中国珠海国际会展中心迎来第6届 S-CIO 2023华南CIO大会暨信息技术交易会 。大会将邀请近1000位来自广东、广西、福建、海南等地的企业IT高管及行业专家深入探讨企业数字化运营的关键问题&#xff0c;以“ 千人论坛-生态展区-专业分论坛-华…

2023年成人高考标准拿证流程(入学前入学后)

很多小伙伴对成人高考“报名→学习→毕业”的流程还是很陌生哈&#xff0c;下面给大家整理了一份详细的报考流程和攻略。 大家可以收藏起来&#xff0c;仔细看看。 成考全流程—入学前 5月—8月 联系报名机构老师预报名&#xff0c;选定自己要报考院校专业&#xff0c;了解报…

36 KVM管理设备-配置虚拟串口

文章目录 36 KVM管理设备-配置虚拟串口36.1 概述36.2 操作步骤 36 KVM管理设备-配置虚拟串口 36.1 概述 在虚拟化环境下&#xff0c;由于管理和业务的需求&#xff0c;虚拟机与宿主机需要互相通信。但在云管理系统复杂的网络架构下&#xff0c;运行在管理平面的服务与运行在业…

Servlet简介和环境设置

目录 Servlet 简介 Servlet 环境设置 导入jar包 web.xml文件配置 WebServlet注解配置 web.xml文件的方式和WebServlet区别 Servlet 简介 Servlet 是运行在 Web 服务器或应用服务器上的程序&#xff0c;它是作为来自 Web 浏览器或其他 HTTP 客户端的请求和 HTTP 服务器上…

对csv文件,又get了新的认知(二)

背景 最近在做数据处理时&#xff0c;发现别人给的 csv 文件用 txt 打开后&#xff0c;发现里面的所有字段都是带双引号&#xff0c;与自己之前见过的 csv 文件有点不一样&#xff0c;自己脑海里面隐约也见过 python 有相关的设置参数&#xff0c;于是就查看 python 官方文档中…

Linux 常用开发工具(上)(yum、vim)知识点+完整思维导图+实图例子+深入细节+通俗易懂建议收藏

绪论 耐心是一切聪明才智的基础。—— 柏拉图。本章进入到Linux下的一些常用的工具&#xff0c;这些工具能帮助我们去更好的使用Linux操作系统。 话不多说安全带系好&#xff0c;发车啦&#xff08;建议电脑观看&#xff09;。 附&#xff1a;红色&#xff0c;部分为重点部分&a…

一个无标记点面捕头盔,如何实现高精度面部表情捕捉?

在影视、动画、 游戏、虚拟直播应用中 虚拟数字人 可以犹如真人般实时驱动 背后少不了面部捕捉技术 随着面部捕捉技术不断革新&#xff0c;从有标记点到无标记点发展&#xff0c;再到如今佩戴一个面捕头盔就可以轻松做到精准面捕。 广州虚拟动力多年沉淀经验&#xff0c;根…

eslint导致的报错解决

当你利用脚手架在创建vue项目时&#xff0c;无脑创建下默认一定会安装eslint代码检测工具。那么你的噩梦就来了。eslint作为代码规范检测&#xff0c;不得不承认它的强大&#xff0c;但是绝对是会逼死一众强迫症患者。 比如你只是简简单单运行一个vue项目&#xff0c;报错一大堆…

10 EM(期望最大)算法

文章目录 10 EM&#xff08;期望最大&#xff09;算法10.1 背景介绍10.2 EM算法公式10.2.1 EM算法公式收敛性证明10.2.2 EM算法公式导出 10.3 广义EM算法10.3.1 EM有什么作用&#xff1f;10.3.2 为什么要引入广义EM&#xff1f;10.3.3 广义EM公式导出10.3.4 广义EM有什么不同 1…

RS-232 RS-485 TTL电平标准 以及串口、COM口、UART口、USB转TTL、USB转串口

串口 即串行通信接口&#xff0c;与之相对应的另一种接口叫并口&#xff0c;并行接口。两者的区别是&#xff0c;传输一个字节&#xff08;8个位&#xff09;的数据时&#xff0c;串口是将8个位排好队&#xff0c;逐个地在1条连接线上传输&#xff0c;而并口则将8个位一字排开…

2023 华为 Datacom-HCIE 真题题库 12(完结)--含解析

单项选择题 1.[试题编号&#xff1a;190728] &#xff08;单选题&#xff09;以下哪种工具不能用来匹配BGP路由条目&#xff1f; A、基本ACL B、高级ACL C、IP PREFIX LIST D、Community Filter 答案&#xff1a;B 解析&#xff1a;高级ACL是一种用于过滤IPv4报文的ACL&#…

记一次通过binlog日志恢复MySQL数据库的经历

通过binlog日志恢复MySQL数据库的数据 一、起因 起因是我在自己服务器上搭建的博客被黑客攻击&#xff0c;黑客删除了我的数据库并且要求支付比特币才给我恢复。 博客所有的表和数据都被清空&#xff0c;只留下了勒索金额和地址。如图 穷鬼如我当然是&#xff1a; 二、恢复数…