集合工具类的常用方法--小总和
前言
集合工具类是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) |
|
| fill(T[] a, T val) |
|
| 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中的一个重要工具类,在Java常用的集合框架中起到了重要的作用。集合工具类提供了一系列的方法,可以方便地处理Java中的集合对象,提高了开发的效率。 Collections类 Collections.sort(List<T> list) 对List集合进…...
一文了解游戏行业(数据分析)
一.概况 1.基本术语 游戏行业基础术语——持续更新ing... 2.产业链 包括游戏开发,发行和销售等环节 ①游戏开发 上游环节是游戏产业链的核心环节,包括游戏策划,美术设计,程序开发等,是决定游戏质量与内容的关键因…...
Flutter之Json序列化
前言 使用 json_annotation 框架实现json字符串序列化和反序列化 框架官方地址:json_serializable 一、引入依赖:在pubspec.yaml中添加 dependencies:json_annotation: ^4.8.1dev_dependencies:build_runner: ^2.3.3json_serializable: ^6.6.0 二、…...
Java基础——局部变量和常量
变量:内存中的一个存储区域(该区域的数据可以在同一类型范围内不断变化)。 常量:一旦声明就不可变,通常用 final 修饰的变量称为常量。 声明格式: [final] 变量类型 变量名;说明: 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文件的作用
在当今的数字化时代,电子游戏已经成为了人们休闲娱乐的重要方式之一。然而,对于许多玩家来说,他们在享受游戏带来的乐趣的同时,也可能会遇到各种各样的问题,其中最常见的就是游戏无法正常运行。而这些问题中࿰…...
RHCSA --- Linux用户/组权限
用户管理 useradd 创建用户 -u(UID) 指定UID -g(GID) 指定基本组 -G(GID1,GID2,...) 指定附加组 -c “注释信息” 指定用户注释信息(昵称) -d /path…...
怎么做到高性能网络IO?
为什么要做高性能网络IO。主要是解决c10,c10M问题 最开始的时候我们走的内核协议栈,走内核协议栈其实性能比较低,因为我们之前介绍的时候需要拷贝两次 但是我们采用用户态协议栈可以少拷贝一次,可以大大提高效率, 步骤…...
设计模式-创建型
文章目录 设计模式-创建型工厂模式简单工厂工厂方法抽象工厂 建造者模式单例模式原型模式 设计模式-创建型 本章主要介绍有关对象创建的几种设计模式。 工厂模式 工厂模式:封装了对象的创建,使得获得对象更加符合实际逻辑 简单工厂 将所有对象的生产…...
Word通过Adobe打印PDF时总是报错,打开记事本
Word文档打印,选择Adobe作为打印机,打印过程中总是报错,不断打开记事本,提示打印出错,错误信息如下: %%[ ProductName: Distiller ]%% %%[Page: 1]%% %%[Page: 2]%% %%[ Error: invalidfont; OffendingCom…...
第2关:还原键盘输入(list)
题目: 知识点: 列表list相较于数组: 优势:可在任意指定位置插入或者删除元素而不影响列表其他地方 。 劣势:无法直接进行下标索引,需要迭代器it逐个遍历。 代码: #include <iostream>…...
数据结构 | 栈的实现
数据结构 | 栈的实现 文章目录 数据结构 | 栈的实现栈的概念及结构栈的实现 Stack.h初始化栈入栈出栈获取栈顶元素获取栈中有效元素个数检测栈是否为空销毁栈 Stack.c 栈的概念及结构 栈:一种特殊的线性表,其只允许在固定的一端进行插入和删除元素操作。…...
python异常、模块与包
1.异常 异常:当检测到一个错误时,Python解释器就无法继续执行了,反而出现了一些错误的提示,这就是所谓的“异常”,也就是我们常说的BUG。 1.1捕获异常 基本语法: try:可能发生错误代码 except:如果出现…...
虚拟内存和物理内存
虚拟内存的概念 虚拟内存是计算机系统内存管理的一种技术,它使得应用程序认为它拥有连续可用的内存(一个连续完整的地址空间),而实际上,它通常是被分隔成多个物理内存碎片,还有部分暂时存储在外部磁盘存储…...
FCA例题
Part.1:判断题 第1题 智能运维-负载管理中,实时负载通过使用图表直观的展示当前系统的最多最近半小时内存利用率和CPU利用率(正确) 第2题 服务器安装插件支持热部署,安装、删除、更新、禁用、启用不需要重启(正确) 第3题 次级管理员可新建…...
mysql使用GROUP BY归组后把所有记录id汇总到一个字段中
可以使用MySQL的GROUP_CONCAT函数来实现将归组后的记录的ID汇总到一个字段中。假设有一个名为table1的表,其中包含id和name两个字段,可以使用以下查询: SELECT name, GROUP_CONCAT(id) AS ids FROM table1 GROUP BY name;这将返回一个结果集…...
Vue3 使用Element Plus表格单选带checkbox
官方地址:添加链接描述 官方给出的多选带checkbox,单选直接选中当前行高亮,有时候不想要单行高亮,想要带checkbox的单选,需要对多选进行改造 官方给的多选例子: <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 ,请你统计并返回这个字符串中 回文子串 的数目。 回文字符串 是正着读和倒过来读一样的字符串。 子字符串 是字符串中的由连续字符组成的一个序列。 具有不同开始位置或结束位置的子串…...
【Go入门】struct类型
【Go入门】struct类型 struct Go语言中,也和C或者其他语言一样,我们可以声明新的类型,作为其它类型的属性或字段的容器。例如,我们可以创建一个自定义类型person代表一个人的实体。这个实体拥有属性:姓名和年龄。这样…...
uniapp 对接腾讯云IM群组成员管理(增删改查)
UniApp 实战:腾讯云IM群组成员管理(增删改查) 一、前言 在社交类App开发中,群组成员管理是核心功能之一。本文将基于UniApp框架,结合腾讯云IM SDK,详细讲解如何实现群组成员的增删改查全流程。 权限校验…...
微信小程序 - 手机震动
一、界面 <button type"primary" bindtap"shortVibrate">短震动</button> <button type"primary" bindtap"longVibrate">长震动</button> 二、js逻辑代码 注:文档 https://developers.weixin.qq…...
Unit 1 深度强化学习简介
Deep RL Course ——Unit 1 Introduction 从理论和实践层面深入学习深度强化学习。学会使用知名的深度强化学习库,例如 Stable Baselines3、RL Baselines3 Zoo、Sample Factory 和 CleanRL。在独特的环境中训练智能体,比如 SnowballFight、Huggy the Do…...
RSS 2025|从说明书学习复杂机器人操作任务:NUS邵林团队提出全新机器人装配技能学习框架Manual2Skill
视觉语言模型(Vision-Language Models, VLMs),为真实环境中的机器人操作任务提供了极具潜力的解决方案。 尽管 VLMs 取得了显著进展,机器人仍难以胜任复杂的长时程任务(如家具装配),主要受限于人…...
C# 表达式和运算符(求值顺序)
求值顺序 表达式可以由许多嵌套的子表达式构成。子表达式的求值顺序可以使表达式的最终值发生 变化。 例如,已知表达式3*52,依照子表达式的求值顺序,有两种可能的结果,如图9-3所示。 如果乘法先执行,结果是17。如果5…...
从 GreenPlum 到镜舟数据库:杭银消费金融湖仓一体转型实践
作者:吴岐诗,杭银消费金融大数据应用开发工程师 本文整理自杭银消费金融大数据应用开发工程师在StarRocks Summit Asia 2024的分享 引言:融合数据湖与数仓的创新之路 在数字金融时代,数据已成为金融机构的核心竞争力。杭银消费金…...
Python 训练营打卡 Day 47
注意力热力图可视化 在day 46代码的基础上,对比不同卷积层热力图可视化的结果 import torch import torch.nn as nn import torch.optim as optim from torchvision import datasets, transforms from torch.utils.data import DataLoader import matplotlib.pypl…...
算法250609 高精度
加法 #include<stdio.h> #include<iostream> #include<string.h> #include<math.h> #include<algorithm> using namespace std; char input1[205]; char input2[205]; int main(){while(scanf("%s%s",input1,input2)!EOF){int a[205]…...
Web APIS Day01
1.声明变量const优先 那为什么一开始前面就不能用const呢,接下来看几个例子: 下面这张为什么可以用const呢?因为复杂数据的引用地址没变,数组还是数组,只是添加了个元素,本质没变,所以可以用con…...
【Axure高保真原型】图片列表添加和删除图片
今天和大家分享图片列表添加和删除图片的原型模板,效果包括: 点击图片列表的加号可以显示图片选择器,选择里面的图片; 选择图片后点击添加按钮,可以将该图片添加到图片列表; 鼠标移入图片列表的图片&…...
