当前位置: 首页 > news >正文

集合工具类的常用方法--小总和

前言

集合工具类是Java中的一个重要工具类,在Java常用的集合框架中起到了重要的作用。集合工具类提供了一系列的方法,可以方便地处理Java中的集合对象,提高了开发的效率。


Collections类

Collections.sort(List<T> list)

对List集合进行升序排序。

Collections.reverse(List<T> list)将List集合中的元素顺序翻转。
Collections.shuffle(List<T> list)将List集合中的元素随机排序
Collections.max(Collection<? extends T> coll)返回集合中最大的元素。
fill(List<? super T> list, T obj)使用指定的元素代替集合中的所有元素。
copy(List<? super T> dest, List<? extends T> src)将源List集合中的元素复制到目标List集合中。
frequency(Collection<?> c, Object o)统计集合中指定元素的出现次数

Collections类的部分方法对集合的要求比较严格,例如sort()方法和binarySearch()方法需要对集合进行排序以保证正确性,frequency()方法需要保证集合中的元素是可比较的。


Arrays类

asList(T… a)将数组转换为List集合。
sort(T[] a)对数组进行升序排序。
copyOf(T[] original, int newLength)
  1. 复制原数组的前newLength个元素到一个新数组中。

fill(T[] a, T val)
  1. 将整个数组的元素设置成指定的值。

equals(T[] a, T[] b)判断两个数组是否相等。

需要注意的是,对于基本类型数组和对象(引用类型)数组,Arrays类的部分方法的使用有所不同。例如排序方法sort(),对于基本类型数组会按照自然顺序排序,对于对象数组需要定义比较器来进行排序。此外,底层算法的实现也有所不同。


ArrayList类

add(E element)在列表末尾添加一个元素。
add(int index, E element)在指定位置插入一个元素
set(int index, E element)替换指定位置的元素。
get(int index)获取指定位置的元素。

 clear()

删除列表中所有元素。
isEmpty()isEmpty
trimToSize()将列表的容量调整为列表实际的大小。
indexOf(Object o)返回列表中第一个出现的指定元素的索引,如果列表中不包含此元素,则返回-1。
lastIndexOf(Object o)返回列表中最后一个出现的指定元素的索引,如果列表中不包含此元素,则返回-1。
contains(Object o)判断列表是否包含指定的元素,如果包含则返回true,否则返回false。

它是底层通过动态数组实现的可伸缩数组。ArrayList提供了一系列有用的方法,可以方便地添加、删除、遍历和操作集合中的元素。

需要注意的是,在对ArrayList进行添加、删除等操作时,都有可能涉及到元素的移动,这也会影响ArrayList的性能。因此,在开发中需要特别注意ArrayList的性能问题。

ArrayList是Java中非常常用的集合类之一,它提供了一系列方便的方法。在使用ArrayList时,需要根据实际情况选择合适的方法,并对ArrayList的性能进行优化,以确保程序的效率。

 


HashSet类 

iterator()获取一个迭代器,用于迭代集合中的元素。
add(E e)添加一个元素。
remove(Object o)移除一个指定的元素。
clear()移除集合中的所有元素。
contains(Object o)判断集合中是否包含指定的元素。
size()获取集合中元素的数量。

需要注意的是,由于HashSet是基于哈希表来实现的,因此元素的顺序并不是按照插入顺序来排列的。如果需要按照插入顺序排列元素,可以考虑使用LinkedHashSet类。

HashSet类支持泛型,可以存储所有类型的对象,包括基本数据类型的包装类型。如果需要存储基本数据类型,则需要使用对应的包装类型。

以上列举的方法只是HashSet类的部分常用方法,它还提供了其他一些方法,例如:addAll(Collection c)方法、retainAll(Collection c)方法、toArray(T[] a)方法、spliterator()方法等。在使用HashSet时,需要根据实际需求选择合适的方法,提高程序的效率。

 

相关文章:

集合工具类的常用方法--小总和

前言 集合工具类是Java中的一个重要工具类&#xff0c;在Java常用的集合框架中起到了重要的作用。集合工具类提供了一系列的方法&#xff0c;可以方便地处理Java中的集合对象&#xff0c;提高了开发的效率。 Collections类 Collections.sort(List<T> list) 对List集合进…...

一文了解游戏行业(数据分析)

一.概况 1.基本术语 游戏行业基础术语——持续更新ing... 2.产业链 包括游戏开发&#xff0c;发行和销售等环节 ①游戏开发 上游环节是游戏产业链的核心环节&#xff0c;包括游戏策划&#xff0c;美术设计&#xff0c;程序开发等&#xff0c;是决定游戏质量与内容的关键因…...

Flutter之Json序列化

前言 使用 json_annotation 框架实现json字符串序列化和反序列化 框架官方地址&#xff1a;json_serializable 一、引入依赖&#xff1a;在pubspec.yaml中添加 dependencies:json_annotation: ^4.8.1dev_dependencies:build_runner: ^2.3.3json_serializable: ^6.6.0 二、…...

Java基础——局部变量和常量

变量&#xff1a;内存中的一个存储区域&#xff08;该区域的数据可以在同一类型范围内不断变化&#xff09;。 常量&#xff1a;一旦声明就不可变&#xff0c;通常用 final 修饰的变量称为常量。 声明格式&#xff1a; [final] 变量类型 变量名;说明&#xff1a; final修饰…...

番外 1 : Java 环境下的 selenium 搭建

Java 环境下的 selenium 搭建 一 . 下载谷歌浏览器二 . 下载谷歌浏览器驱动2.1 查看谷歌浏览器版本2.2 下载对应版本的谷歌驱动2.3 解压下载好的驱动压缩包 , 将下载好的 chromedriver.exe 放到java 系统环境变量下 三 . 下载 Edge 浏览器的驱动3.1 查看 Edge 浏览器的版本3.2 …...

游戏缺失d3dx9_39.dll的5个修复方法,深度解析d3dx9_39.dll文件的作用

在当今的数字化时代&#xff0c;电子游戏已经成为了人们休闲娱乐的重要方式之一。然而&#xff0c;对于许多玩家来说&#xff0c;他们在享受游戏带来的乐趣的同时&#xff0c;也可能会遇到各种各样的问题&#xff0c;其中最常见的就是游戏无法正常运行。而这些问题中&#xff0…...

RHCSA --- Linux用户/组权限

用户管理 useradd 创建用户 -u&#xff08;UID&#xff09; 指定UID -g&#xff08;GID&#xff09; 指定基本组 -G&#xff08;GID1,GID2,...) 指定附加组 -c “注释信息” 指定用户注释信息&#xff08;昵称&#xff09; -d /path…...

怎么做到高性能网络IO?

为什么要做高性能网络IO。主要是解决c10&#xff0c;c10M问题 最开始的时候我们走的内核协议栈&#xff0c;走内核协议栈其实性能比较低&#xff0c;因为我们之前介绍的时候需要拷贝两次 但是我们采用用户态协议栈可以少拷贝一次&#xff0c;可以大大提高效率&#xff0c; 步骤…...

设计模式-创建型

文章目录 设计模式-创建型工厂模式简单工厂工厂方法抽象工厂 建造者模式单例模式原型模式 设计模式-创建型 本章主要介绍有关对象创建的几种设计模式。 工厂模式 工厂模式&#xff1a;封装了对象的创建&#xff0c;使得获得对象更加符合实际逻辑 简单工厂 将所有对象的生产…...

Word通过Adobe打印PDF时总是报错,打开记事本

Word文档打印&#xff0c;选择Adobe作为打印机&#xff0c;打印过程中总是报错&#xff0c;不断打开记事本&#xff0c;提示打印出错&#xff0c;错误信息如下&#xff1a; %%[ ProductName: Distiller ]%% %%[Page: 1]%% %%[Page: 2]%% %%[ Error: invalidfont; OffendingCom…...

第2关:还原键盘输入(list)

题目&#xff1a; 知识点&#xff1a; 列表list相较于数组&#xff1a; 优势&#xff1a;可在任意指定位置插入或者删除元素而不影响列表其他地方 。 劣势&#xff1a;无法直接进行下标索引&#xff0c;需要迭代器it逐个遍历。 代码&#xff1a; #include <iostream>…...

数据结构 | 栈的实现

数据结构 | 栈的实现 文章目录 数据结构 | 栈的实现栈的概念及结构栈的实现 Stack.h初始化栈入栈出栈获取栈顶元素获取栈中有效元素个数检测栈是否为空销毁栈 Stack.c 栈的概念及结构 栈&#xff1a;一种特殊的线性表&#xff0c;其只允许在固定的一端进行插入和删除元素操作。…...

python异常、模块与包

1.异常 异常&#xff1a;当检测到一个错误时&#xff0c;Python解释器就无法继续执行了&#xff0c;反而出现了一些错误的提示&#xff0c;这就是所谓的“异常”&#xff0c;也就是我们常说的BUG。 1.1捕获异常 基本语法&#xff1a; try:可能发生错误代码 except:如果出现…...

虚拟内存和物理内存

虚拟内存的概念 虚拟内存是计算机系统内存管理的一种技术&#xff0c;它使得应用程序认为它拥有连续可用的内存&#xff08;一个连续完整的地址空间&#xff09;&#xff0c;而实际上&#xff0c;它通常是被分隔成多个物理内存碎片&#xff0c;还有部分暂时存储在外部磁盘存储…...

FCA例题

Part.1&#xff1a;判断题 第1题 智能运维-负载管理中&#xff0c;实时负载通过使用图表直观的展示当前系统的最多最近半小时内存利用率和CPU利用率(正确) 第2题 服务器安装插件支持热部署&#xff0c;安装、删除、更新、禁用、启用不需要重启(正确) 第3题 次级管理员可新建…...

mysql使用GROUP BY归组后把所有记录id汇总到一个字段中

可以使用MySQL的GROUP_CONCAT函数来实现将归组后的记录的ID汇总到一个字段中。假设有一个名为table1的表&#xff0c;其中包含id和name两个字段&#xff0c;可以使用以下查询&#xff1a; SELECT name, GROUP_CONCAT(id) AS ids FROM table1 GROUP BY name;这将返回一个结果集…...

Vue3 使用Element Plus表格单选带checkbox

官方地址&#xff1a;添加链接描述 官方给出的多选带checkbox&#xff0c;单选直接选中当前行高亮&#xff0c;有时候不想要单行高亮&#xff0c;想要带checkbox的单选&#xff0c;需要对多选进行改造 官方给的多选例子&#xff1a; <template><el-tableref"mult…...

IOC - 自定义IOC容器

1、定义接口与实现类 // Service接口 public interface Service {void execute(); } // Service的实现类 public class MyService implements Service {Overridepublic void execute() {System.out.println("MyService 执行了.");} }2、自定义ioc容器以绑定接口与实…...

力扣第647题 回文子串 c++ 动态规划 双指针 附Java代码 注释解释版

题目 647. 回文子串 中等 相关标签 字符串 动态规划 给你一个字符串 s &#xff0c;请你统计并返回这个字符串中 回文子串 的数目。 回文字符串 是正着读和倒过来读一样的字符串。 子字符串 是字符串中的由连续字符组成的一个序列。 具有不同开始位置或结束位置的子串…...

【Go入门】struct类型

【Go入门】struct类型 struct Go语言中&#xff0c;也和C或者其他语言一样&#xff0c;我们可以声明新的类型&#xff0c;作为其它类型的属性或字段的容器。例如&#xff0c;我们可以创建一个自定义类型person代表一个人的实体。这个实体拥有属性&#xff1a;姓名和年龄。这样…...

从深圳崛起的“机器之眼”:赴港乐动机器人的万亿赛道赶考路

进入2025年以来&#xff0c;尽管围绕人形机器人、具身智能等机器人赛道的质疑声不断&#xff0c;但全球市场热度依然高涨&#xff0c;入局者持续增加。 以国内市场为例&#xff0c;天眼查专业版数据显示&#xff0c;截至5月底&#xff0c;我国现存在业、存续状态的机器人相关企…...

跨链模式:多链互操作架构与性能扩展方案

跨链模式&#xff1a;多链互操作架构与性能扩展方案 ——构建下一代区块链互联网的技术基石 一、跨链架构的核心范式演进 1. 分层协议栈&#xff1a;模块化解耦设计 现代跨链系统采用分层协议栈实现灵活扩展&#xff08;H2Cross架构&#xff09;&#xff1a; 适配层&#xf…...

[10-3]软件I2C读写MPU6050 江协科技学习笔记(16个知识点)

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16...

【android bluetooth 框架分析 04】【bt-framework 层详解 1】【BluetoothProperties介绍】

1. BluetoothProperties介绍 libsysprop/srcs/android/sysprop/BluetoothProperties.sysprop BluetoothProperties.sysprop 是 Android AOSP 中的一种 系统属性定义文件&#xff08;System Property Definition File&#xff09;&#xff0c;用于声明和管理 Bluetooth 模块相…...

WEB3全栈开发——面试专业技能点P2智能合约开发(Solidity)

一、Solidity合约开发 下面是 Solidity 合约开发 的概念、代码示例及讲解&#xff0c;适合用作学习或写简历项目背景说明。 &#x1f9e0; 一、概念简介&#xff1a;Solidity 合约开发 Solidity 是一种专门为 以太坊&#xff08;Ethereum&#xff09;平台编写智能合约的高级编…...

Caliper 配置文件解析:config.yaml

Caliper 是一个区块链性能基准测试工具,用于评估不同区块链平台的性能。下面我将详细解释你提供的 fisco-bcos.json 文件结构,并说明它与 config.yaml 文件的关系。 fisco-bcos.json 文件解析 这个文件是针对 FISCO-BCOS 区块链网络的 Caliper 配置文件,主要包含以下几个部…...

听写流程自动化实践,轻量级教育辅助

随着智能教育工具的发展&#xff0c;越来越多的传统学习方式正在被数字化、自动化所优化。听写作为语文、英语等学科中重要的基础训练形式&#xff0c;也迎来了更高效的解决方案。 这是一款轻量但功能强大的听写辅助工具。它是基于本地词库与可选在线语音引擎构建&#xff0c;…...

Python ROS2【机器人中间件框架】 简介

销量过万TEEIS德国护膝夏天用薄款 优惠券冠生园 百花蜂蜜428g 挤压瓶纯蜂蜜巨奇严选 鞋子除臭剂360ml 多芬身体磨砂膏280g健70%-75%酒精消毒棉片湿巾1418cm 80片/袋3袋大包清洁食品用消毒 优惠券AIMORNY52朵红玫瑰永生香皂花同城配送非鲜花七夕情人节生日礼物送女友 热卖妙洁棉…...

推荐 github 项目:GeminiImageApp(图片生成方向,可以做一定的素材)

推荐 github 项目:GeminiImageApp(图片生成方向&#xff0c;可以做一定的素材) 这个项目能干嘛? 使用 gemini 2.0 的 api 和 google 其他的 api 来做衍生处理 简化和优化了文生图和图生图的行为(我的最主要) 并且有一些目标检测和切割(我用不到) 视频和 imagefx 因为没 a…...

【C++特殊工具与技术】优化内存分配(一):C++中的内存分配

目录 一、C 内存的基本概念​ 1.1 内存的物理与逻辑结构​ 1.2 C 程序的内存区域划分​ 二、栈内存分配​ 2.1 栈内存的特点​ 2.2 栈内存分配示例​ 三、堆内存分配​ 3.1 new和delete操作符​ 4.2 内存泄漏与悬空指针问题​ 4.3 new和delete的重载​ 四、智能指针…...