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

Java学习——集合框架

Java集合框架(Java Collections Framework)是一套性能优良、使用方便的接口和类的集合,它位于java.util包下。这个框架包含了一系列集合接口的标准实现,比如列表、集合、队列,以及映射。使用这些集合,你可以高效地存储和处理数据集合。和C++中的STL标准库是一样的,提供已经写好的数据结构。

集合框架主要接口

  1. List:有序集合(也称为序列)。这个接口的用户可以对列表中每个元素的插入位置进行精确地控制。用户可以根据元素的整数索引在列表中访问元素,并搜索列表中的元素。
    • 常用实现:ArrayListLinkedList
  2. Set:不允许重复元素的集合。更确切地讲,集合不允许包含相等的元素。
    • 常用实现:HashSetLinkedHashSetTreeSet
  3. Queue:一种用于在处理之前保持元素的集合。队列提供了额外的插入、提取和检查操作。
    • 常用实现:LinkedList(同时实现了List和Queue接口)、PriorityQueue
  4. Map:一个将键映射到值的对象。一个映射不能包含重复的键;每个键最多只能映射到一个值。
    • 常用实现:HashMapLinkedHashMapTreeMap

集合框架的特点

  • 泛型:从Java 5开始,集合框架得到了泛型的支持,这意味着编译时类型安全。
  • 性能:集合框架提供了高性能的实现,例如,HashMapArrayListLinkedList等。
  • 算法:Java集合框架提供了一系列算法,用于对集合进行排序、搜索和转换等操作。

示例:使用集合

List示例
List<String> list = new ArrayList<>();
list.add("Apple");
list.add("Banana");
list.add("Cherry");
System.out.println(list); // 输出:[Apple, Banana, Cherry]list.remove("Apple");//移除Apple
list.size();//获取list的长度
list.isEmpty();//判断是否为空
list.contains("Banana");//判断是否有Banana

注意事项

  • 选择合适的集合:根据你的需求选择最合适的集合类型。例如,如果你需要快速随机访问元素,使用ArrayList;如果你经常在列表中间插入或删除元素,使用LinkedList
  • 线程安全:集合框架中的大多数实现都不是线程安全的。如果在多线程环境中使用,考虑使用Collections类中提供的同步包装器,或者使用java.util.concurrent包下的并发集合。

相关文章:

Java学习——集合框架

Java集合框架&#xff08;Java Collections Framework&#xff09;是一套性能优良、使用方便的接口和类的集合&#xff0c;它位于java.util包下。这个框架包含了一系列集合接口的标准实现&#xff0c;比如列表、集合、队列&#xff0c;以及映射。使用这些集合&#xff0c;你可以…...

【鸿蒙 HarmonyOS 4.0】UIAbility、页面及组件的生命周期

一、背景 主要梳理下鸿蒙系统开发中常用的生命周期 二、UIAbility组件 UIAbility组件是一种包含UI界面的应用组件&#xff0c;主要用于和用户交互。 UIAbility组件是系统调度的基本单元&#xff0c;为应用提供绘制界面的窗口&#xff1b;一个UIAbility组件中可以通过多个页…...

jdk动态代理与CGLib动态代理

jdk动态代理 目标对象 package com.study;/*** 目标对象&#xff08;被代理的对象&#xff09;**/ public class Target implements TargetInf{public String name;public Target() {}public Target(String name) {this.name name;}public String buyCola (String name){Sys…...

Linux 命令行的世界 :4.操作文件和目录

此时此刻&#xff0c;我们已经准备好了做些真正的工作&#xff01;这一章节将会介绍以下命令&#xff1a; • cp —复制文件和目录 • mv —移动/重命名文件和目录 • mkdir —创建目录 • rm —删除文件和目录 • ln —创建硬链接和符号链接 图形文件管理器能轻松地实现…...

如何使用ArcGIS Pro生成等高线

无论在制图还是规划中&#xff0c;经常会使用到等高线&#xff0c;大多数情况下&#xff0c;从网上获取的高程数据都是DEM文件&#xff0c;我们可以通过ArcGIS Pro来生成等高线&#xff0c;这里为大家介绍一下生成方法&#xff0c;希望能对你有所帮助。 数据来源 教程所使用的…...

golang学习2,golang开发配置国内镜像

go env -w GO111MODULEon go env -w GOPROXYhttps://goproxy.cn,direct...

Stable Diffusion 绘画入门教程(webui)-ControlNet(线稿约束)

上篇文章介绍了openpose&#xff0c;本篇文章介绍下线稿约束&#xff0c;关于线稿约束有好几个处理器都属于此类型&#xff0c;但是有一些区别。 包含&#xff1a; 1、Canny(硬边缘&#xff09;&#xff1a;识别线条比较多比较细&#xff0c;一般用于更大程度得还原照片 2、ML…...

前端笔记——var let const 之间的区别

Var&#xff1a; 关键字来声明变量。它有以下特点&#xff1a; var声明的变量作用域是函数级的&#xff0c;即在函数内部声明的变量在整个函数范围内可见。 var变量可以被重复声明&#xff0c;而不会引发错误。 var变量会存在变量提升&#xff08;hoisting&#xff09;现象&…...

AI工具新革命:从ChatGPT到Sora,生成式AI改变世界

这个春节着实精彩&#xff0c;“春山学”吃透了&#xff0c;不如把目光移向OpenAI又一重磅产品——文生视频大模型Sora。智能新纪元已然开启&#xff0c;因为正如周鸿祎所说&#xff1a;“,Sora的诞生意味着AGI&#xff08;通用人工智能&#xff09;的实现将从10年缩短到1年。”…...

C 标准库 - <stdio.h> 详解

在 C 语言中&#xff0c;stdio.h 是一个非常重要的头文件&#xff0c;定义了一系列用于输入和输出的函数、变量和宏。本文将逐一介绍 stdio.h 中定义的函数&#xff0c;并提供每个函数的完整示例。 变量类型 在 stdio.h 中定义了三个变量类型&#xff1a; size_t&#xff1a…...

支付宝小程序中唤起支付(前后端)

Java后台获取支付宝支付唯一订单号 /*** 支付宝小程序支付*/PostMapping(value "/xcxPayZFBTHREE")ResponseBodypublic Map<String,Object> xcxPayZFBTHREE(RequestBody byte[] req) {HashMap<String, Object> objectObjectMap new HashMap<>();…...

AI:139-基于深度学习的语音指令识别与执行

🚀点击这里跳转到本专栏,可查阅专栏顶置最新的指南宝典~ 🎉🎊🎉 你的技术旅程将在这里启航! 从基础到实践,深入学习。无论你是初学者还是经验丰富的老手,对于本专栏案例和项目实践都有参考学习意义。 ✨✨✨ 每一个案例都附带关键代码,详细讲解供大家学习,希望…...

选择 Python IDE(VSCode、Spyder、Visual Studio 2022和 PyCharm)

前言 当选择 Python 开发工具时&#xff0c;你需要考虑自己的需求、偏好和项目类型。下面是对VSCode、Spyder、Visual Studio 2022和 PyCharm的对比推荐总结&#xff1a; 结论 1、如果你专注于“数据科学”&#xff0c;选择SpyDer没错。 内容 Visual Studio Code (VS Code)…...

Rabbitmq 超时异常解决:PRECONDITION_FAILED - Timeout value used: 1800000 ms.

Rabbitmq 超时异常解决&#xff1a;PRECONDITION_FAILED - Timeout value used: 1800000 ms. 在使用 docker 启动 rabbitmq 的时候&#xff0c;执行一个超长时间的任务&#xff0c;出现了报错。 查询了一下发现&#xff0c;这个问题在于 rabbitmq 默认客户端超时时间是30分钟,…...

Java架构师之路二、数据库:SQL语言、关系型数据库、非关系型数据库、数据一致性、事务管理等。

目录 SQL语言&#xff1a; 关系型数据库&#xff1a; 非关系型数据库&#xff1a; 数据一致性&#xff1a; 事务管理&#xff1a; 上篇&#xff1a;Java架构师之路一、Java基础知识&#xff1a;Java语言特性、集合框架、IO流、多线程、反射、注解等基础知识。-CSDN博客 下…...

【Spring Cloud】高并发带来的问题及常见容错方案

文章目录 高并发带来的问题编写代码修改配置压力测试修改配置&#xff0c;并启动软件添加线程组配置线程并发数添加Http取样配置取样&#xff0c;并启动测试访问message方法观察效果 服务雪崩效应常见容错方案常见的容错思路常见的容错组件 总结 欢迎来到阿Q社区 https://bbs.c…...

springAOP落地实现

文章目录 前言一、熟悉相关概念&#xff1a;1、Aspect&#xff1a;2、Pointcut&#xff1a;3、Before&#xff1a;4、AfterReturning&#xff1a;5、AfterThrowing&#xff1a;6、After&#xff1a;7、Around&#xff1a; 二、具体使用case&#xff1a;1.pom文件2.代码 总结 前…...

Linux学习之vi/vim详细介绍

目录 ​编辑 1. 什么是 vim&#xff1f; 2. vi/vim 的使用 2.1 命令模式 2.2 输入模式 2.3 底线命令模式 3. vi/vim 使用实例 3.1 使用 vi/vim 进入一般模式 3.2 按下 i 进入输入模式(也称为编辑模式)&#xff0c;开始编辑文字 3.3 按下 ESC 按钮回到一般模式…...

【AIGC大模型】跑通wonder3D (windows)

论文链接&#xff1a;https://arxiv.org/pdf/2310.15008.pdf windows10系统 显卡&#xff1a;NVIDIA rtx 2060 一、安装anaconda 二、安装CUDA 11.7 (CUDA Toolkit 11.7 Downloads | NVIDIA Developer) 和 cudnn 8.9.7(cuDNN Archive | NVIDIA Developer)库 CUDA选择自定…...

Opencv(2)深浅拷贝与基本绘图(c++python

Opencv(2)深浅拷贝与基本绘图 文章目录 Opencv(2)深浅拷贝与基本绘图三、深浅拷贝四、HSV色域(1).意义(2).cvtColor()(3).inRange()(4).适应光线 三、深浅拷贝 浅拷贝是指当图像之间进行赋值时&#xff0c;图像数据并未发生复制&#xff0c;而是两个对象都指向同一块内存块。 …...

变量 varablie 声明- Rust 变量 let mut 声明与 C/C++ 变量声明对比分析

一、变量声明设计&#xff1a;let 与 mut 的哲学解析 Rust 采用 let 声明变量并通过 mut 显式标记可变性&#xff0c;这种设计体现了语言的核心哲学。以下是深度解析&#xff1a; 1.1 设计理念剖析 安全优先原则&#xff1a;默认不可变强制开发者明确声明意图 let x 5; …...

工业安全零事故的智能守护者:一体化AI智能安防平台

前言&#xff1a; 通过AI视觉技术&#xff0c;为船厂提供全面的安全监控解决方案&#xff0c;涵盖交通违规检测、起重机轨道安全、非法入侵检测、盗窃防范、安全规范执行监控等多个方面&#xff0c;能够实现对应负责人反馈机制&#xff0c;并最终实现数据的统计报表。提升船厂…...

【大模型RAG】Docker 一键部署 Milvus 完整攻略

本文概要 Milvus 2.5 Stand-alone 版可通过 Docker 在几分钟内完成安装&#xff1b;只需暴露 19530&#xff08;gRPC&#xff09;与 9091&#xff08;HTTP/WebUI&#xff09;两个端口&#xff0c;即可让本地电脑通过 PyMilvus 或浏览器访问远程 Linux 服务器上的 Milvus。下面…...

ESP32读取DHT11温湿度数据

芯片&#xff1a;ESP32 环境&#xff1a;Arduino 一、安装DHT11传感器库 红框的库&#xff0c;别安装错了 二、代码 注意&#xff0c;DATA口要连接在D15上 #include "DHT.h" // 包含DHT库#define DHTPIN 15 // 定义DHT11数据引脚连接到ESP32的GPIO15 #define D…...

鸿蒙中用HarmonyOS SDK应用服务 HarmonyOS5开发一个医院查看报告小程序

一、开发环境准备 ​​工具安装​​&#xff1a; 下载安装DevEco Studio 4.0&#xff08;支持HarmonyOS 5&#xff09;配置HarmonyOS SDK 5.0确保Node.js版本≥14 ​​项目初始化​​&#xff1a; ohpm init harmony/hospital-report-app 二、核心功能模块实现 1. 报告列表…...

06 Deep learning神经网络编程基础 激活函数 --吴恩达

深度学习激活函数详解 一、核心作用 引入非线性:使神经网络可学习复杂模式控制输出范围:如Sigmoid将输出限制在(0,1)梯度传递:影响反向传播的稳定性二、常见类型及数学表达 Sigmoid σ ( x ) = 1 1 +...

第 86 场周赛:矩阵中的幻方、钥匙和房间、将数组拆分成斐波那契序列、猜猜这个单词

Q1、[中等] 矩阵中的幻方 1、题目描述 3 x 3 的幻方是一个填充有 从 1 到 9 的不同数字的 3 x 3 矩阵&#xff0c;其中每行&#xff0c;每列以及两条对角线上的各数之和都相等。 给定一个由整数组成的row x col 的 grid&#xff0c;其中有多少个 3 3 的 “幻方” 子矩阵&am…...

精益数据分析(97/126):邮件营销与用户参与度的关键指标优化指南

精益数据分析&#xff08;97/126&#xff09;&#xff1a;邮件营销与用户参与度的关键指标优化指南 在数字化营销时代&#xff0c;邮件列表效度、用户参与度和网站性能等指标往往决定着创业公司的增长成败。今天&#xff0c;我们将深入解析邮件打开率、网站可用性、页面参与时…...

【数据分析】R版IntelliGenes用于生物标志物发现的可解释机器学习

禁止商业或二改转载&#xff0c;仅供自学使用&#xff0c;侵权必究&#xff0c;如需截取部分内容请后台联系作者! 文章目录 介绍流程步骤1. 输入数据2. 特征选择3. 模型训练4. I-Genes 评分计算5. 输出结果 IntelliGenesR 安装包1. 特征选择2. 模型训练和评估3. I-Genes 评分计…...

HarmonyOS运动开发:如何用mpchart绘制运动配速图表

##鸿蒙核心技术##运动开发##Sensor Service Kit&#xff08;传感器服务&#xff09;# 前言 在运动类应用中&#xff0c;运动数据的可视化是提升用户体验的重要环节。通过直观的图表展示运动过程中的关键数据&#xff0c;如配速、距离、卡路里消耗等&#xff0c;用户可以更清晰…...