当前位置: 首页 > 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;姓名和年龄。这样…...

RocketMQ延迟消息机制

两种延迟消息 RocketMQ中提供了两种延迟消息机制 指定固定的延迟级别 通过在Message中设定一个MessageDelayLevel参数&#xff0c;对应18个预设的延迟级别指定时间点的延迟级别 通过在Message中设定一个DeliverTimeMS指定一个Long类型表示的具体时间点。到了时间点后&#xf…...

三维GIS开发cesium智慧地铁教程(5)Cesium相机控制

一、环境搭建 <script src"../cesium1.99/Build/Cesium/Cesium.js"></script> <link rel"stylesheet" href"../cesium1.99/Build/Cesium/Widgets/widgets.css"> 关键配置点&#xff1a; 路径验证&#xff1a;确保相对路径.…...

STM32+rt-thread判断是否联网

一、根据NETDEV_FLAG_INTERNET_UP位判断 static bool is_conncected(void) {struct netdev *dev RT_NULL;dev netdev_get_first_by_flags(NETDEV_FLAG_INTERNET_UP);if (dev RT_NULL){printf("wait netdev internet up...");return false;}else{printf("loc…...

MVC 数据库

MVC 数据库 引言 在软件开发领域,Model-View-Controller(MVC)是一种流行的软件架构模式,它将应用程序分为三个核心组件:模型(Model)、视图(View)和控制器(Controller)。这种模式有助于提高代码的可维护性和可扩展性。本文将深入探讨MVC架构与数据库之间的关系,以…...

学习STC51单片机31(芯片为STC89C52RCRC)OLED显示屏1

每日一言 生活的美好&#xff0c;总是藏在那些你咬牙坚持的日子里。 硬件&#xff1a;OLED 以后要用到OLED的时候找到这个文件 OLED的设备地址 SSD1306"SSD" 是品牌缩写&#xff0c;"1306" 是产品编号。 驱动 OLED 屏幕的 IIC 总线数据传输格式 示意图 …...

如何为服务器生成TLS证书

TLS&#xff08;Transport Layer Security&#xff09;证书是确保网络通信安全的重要手段&#xff0c;它通过加密技术保护传输的数据不被窃听和篡改。在服务器上配置TLS证书&#xff0c;可以使用户通过HTTPS协议安全地访问您的网站。本文将详细介绍如何在服务器上生成一个TLS证…...

Linux 内存管理实战精讲:核心原理与面试常考点全解析

Linux 内存管理实战精讲&#xff1a;核心原理与面试常考点全解析 Linux 内核内存管理是系统设计中最复杂但也最核心的模块之一。它不仅支撑着虚拟内存机制、物理内存分配、进程隔离与资源复用&#xff0c;还直接决定系统运行的性能与稳定性。无论你是嵌入式开发者、内核调试工…...

虚拟电厂发展三大趋势:市场化、技术主导、车网互联

市场化&#xff1a;从政策驱动到多元盈利 政策全面赋能 2025年4月&#xff0c;国家发改委、能源局发布《关于加快推进虚拟电厂发展的指导意见》&#xff0c;首次明确虚拟电厂为“独立市场主体”&#xff0c;提出硬性目标&#xff1a;2027年全国调节能力≥2000万千瓦&#xff0…...

2025年渗透测试面试题总结-腾讯[实习]科恩实验室-安全工程师(题目+回答)

安全领域各种资源&#xff0c;学习文档&#xff0c;以及工具分享、前沿信息分享、POC、EXP分享。不定期分享各种好玩的项目及好用的工具&#xff0c;欢迎关注。 目录 腾讯[实习]科恩实验室-安全工程师 一、网络与协议 1. TCP三次握手 2. SYN扫描原理 3. HTTPS证书机制 二…...

Redis:现代应用开发的高效内存数据存储利器

一、Redis的起源与发展 Redis最初由意大利程序员Salvatore Sanfilippo在2009年开发&#xff0c;其初衷是为了满足他自己的一个项目需求&#xff0c;即需要一个高性能的键值存储系统来解决传统数据库在高并发场景下的性能瓶颈。随着项目的开源&#xff0c;Redis凭借其简单易用、…...