Date: 2025-05-21 20:21:32 author: lijianzhan

Java 集合框架提供了一组接口和类,以实现各种数据结构和算法。

以下是关于 Java 集合的核心内容说明:

        /*** Java Collection Framework 说明:** 在 Java 中,集合(Collection) 是一个核心的编程概念,用于存储、管理和操作一组对象。Java 集合框架(Java Collections Framework, JCF)提供了一套标准化的接口和类,使得开发者可以高效地处理数据集合(如列表、集合、队列、映射等)* Java 集合框架基于接口设计的,并且分为了两大类分别是Collection接口和Map接口** Collection 接口(说明:存储单一元素)特点:*  下面三种接口是Collection接口的子接口*  1.List:*      1.有序排列*      2.允许重复*      3.如 ArrayList, LinkedList(ps:LinkedList类提供了双向链接列表数据结构的实现)*  2.Set:*      1.无序排列*      2.不允许重复*      3.如 HashSet, TreeSet*  3.Queue:*      1.队列*      2.先进先出(FIFO)*      3.如 LinkedList, PriorityQueue** Map 接口(说明:Map接口允许元素以键/值对(Key-Value)的形式存储。键是唯一的名称,可用于访问map中的特定元素。而且,每个键都有一个与之关联的值)特点:*  1.键唯一*  2.值可重复*  3.如 HashMap, TreeMap** */
  1. 在Java中,List接口是一个有序的集合,它允许我们按顺序存储和访问元素:
    为了使用List接口的功能,我们可以使用以下类:
    1.数组列表(ArrayList类)
    2.链表(LinkedList类)
    3.向量(vector类)
    4.堆栈(Stack类)

(1)List 接口的实现类

import java.util.ArrayList;
import java.util.List;class Main {public static void main(String[] args){/** ArrayList:*  1.基于动态数组实现*  2.线程不安全,适用于单线程环境*  3.可以包含重复的元素*/List<Integer> list = new ArrayList<>();list.add(1);list.add(2);list.add(3);System.out.println("List: " + list);//从列表中访问元素int number = list.get(2);System.out.println("访问元素: " + number);//使用indexOf()方法int index = list.indexOf(2);System.out.println("位置3的元素是 " + index);//从列表中删除元素int removedNumber = list.remove(1);System.out.println("删除元素: " + removedNumber);}
}
输出结果示例:

在这里插入图片描述
(2)List 接口的实现类

import java.util.LinkedList;
import java.util.ListIterator;class Main {public static void main(String[] args){/** ArrayList:*  1.基于双向链表实现*  2.实现了 Deque 接口,可用作队列或栈*  3.可以包含重复的元素*///创建整数类型的链表LinkedList<Integer> linkedList = new LinkedList<>();linkedList.add(1);linkedList.add(2);System.out.println("LinkedList: " + linkedList);//从链表中获取元素int number = linkedList.get(1);System.out.print("索引1处的元素: " + number);//创建字符串类型的链表LinkedList<String> linkedList2 = new LinkedList<>();//将元素添加到 LinkedList2linkedList2.add("Dog");linkedList2.add("Cat");linkedList2.add("Horse");System.out.println("linkedList2: " + linkedList2);//使用索引添加元素到 LinkedList2linkedList2.add(0,"Danger");linkedList2.add(1,"Monkey");linkedList2.add(2,"Duck");System.out.println("linkedList2: " + linkedList2);// 将一个链表添加到另一个链表,新建animals链表LinkedList<String> animals = new LinkedList<>();animals.add("Crocodile");//把 linkedList2 的所有元素都添加到 animals 上animals.addAll(linkedList2);System.out.println("Animals: " + animals);//创建ListIterator对象ListIterator<String> listIterate = animals.listIterator();listIterate.add("Dog");listIterate.add("Cat");System.out.println("listIterate: " + animals);// 使用iterator()方法 访问元素while(listIterate.hasNext()) {System.out.print(listIterate.next());System.out.print(", ");}}
}
输出结果示例:

在这里插入图片描述

  1. Set集合不能包含重复的元素:
    为了使用Set接口的功能,我们可以使用以下类:
    1.HashSet
    2.LinkedHashSet
    3.EnumSet
    4.TreeSet
    Set 接口的实现类:
    (1)HashSet
import java.util.HashSet;
import java.util.Set;class Main {public static void main(String[] args){/** HashSet:*  1.基于哈希表实现,无序,插入/查询时间复杂度为 O(1)*  2.依赖 hashCode() 和 equals() 方法判断元素是否重复。*/// 创建setSet<Integer> setList = new HashSet<>();setList.add(10);// 重复元素会被忽略setList.add(10);System.out.println(setList);}
}

代码运行结果:
在这里插入图片描述

(2)TreeSet

import java.util.TreeSet;class Main {public static void main(String[] args){/** TreeSet:*  1.基于红黑树实现,自然排序或自定义排序,插入/查询时间复杂度为 O(log n)*  2.元素必须实现 Comparable 接口或传入 Comparator*/// 创建TreeSetTreeSet<String> treeSet = new TreeSet<>();treeSet.add("Banana");treeSet.add("Apple"); // 自动按字母顺序排序System.out.println(treeSet);}
}

代码运行结果:
在这里插入图片描述
总结:Java 集合框架是处理数据的核心工具,能够理解其接口和实现类的特性,掌握集合的使用可以高效的编程。

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

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

让MySQL更快:EXPLAIN语句详尽解析

前言 在数据库性能调优中&#xff0c;SQL 查询的执行效率是影响系统整体性能的关键因素之一。MySQL 提供了强大的工具——EXPLAIN 语句&#xff0c;帮助开发者和数据库管理员深入分析查询的执行计划&#xff0c;从而发现潜在的性能瓶颈并进行针对性优化。 EXPLAIN 语句能够模…

Java基础 Day20

一、HashSet 集合类 1、简介 HashSet 集合底层采取哈希表存储数据 底层是HashMap 不能使存取有序 JDK8之前的哈希表是数组和链表&#xff0c;头插法 JDK8之后的哈希表是数组、链表和红黑树&#xff0c;尾插法 2、存储元素 &#xff08;1&#xff09;如果要保证元素的唯…

2505C++,32位转64位

原文 假设有个想要将一个32位值传递给一个带64位值的函数的函数.你不关心高32位的内容,因为该值是传递给回调函数的直通值,回调函数会把它截断为32位值. 因此,你都担心编译器一般生成的将32位值扩展到64位值的那条指令的性能影响. 我怀疑这条指令不是程序中的性能瓶颈. 我想出…

光伏电站及时巡检:守护清洁能源的“生命线”

在“双碳”目标驱动下&#xff0c;光伏电站作为清洁能源的主力军&#xff0c;正以年均20%以上的装机增速重塑全球能源格局。然而&#xff0c;这些遍布荒漠、屋顶的“光伏矩阵”并非一劳永逸的能源提款机&#xff0c;其稳定运行高度依赖精细化的巡检维护。山东枣庄触电事故、衢州…

C++初阶-list的使用2

目录 1.std::list::splice的使用 2.std::list::remove和std::list::remove_if的使用 2.1remove_if函数的简单介绍 基本用法 函数原型 使用函数对象作为谓词 使用普通函数作为谓词 注意事项 复杂对象示例 2.2remove与remove_if的简单使用 3.std::list::unique的使用 …

OpenHarmony平台驱动使用(一),ADC

OpenHarmony平台驱动使用&#xff08;一&#xff09; ADC 概述 功能简介 ADC&#xff08;Analog to Digital Converter&#xff09;&#xff0c;即模拟-数字转换器&#xff0c;可将模拟信号转换成对应的数字信号&#xff0c;便于存储与计算等操作。除电源线和地线之外&#…

CSS【详解】弹性布局 flex

适用场景 一维&#xff08;行或列&#xff09;布局 基本概念 包裹所有被布局元素的父元素为容器 所有被布局的元素为项目 项目的排列方向&#xff08;垂直/水平&#xff09;为主轴 与主轴垂直的方向交交叉轴 容器上启用 flex 布局 将容器的 display 样式设置为 flex 或 i…

基于MATLAB实现传统谱减法以及两种改进的谱减法(增益函数谱减法、多带谱减法)的语音增强

基于MATLAB实现传统谱减法以及两种改进的谱减法&#xff08;增益函数谱减法、多带谱减法&#xff09;的语音增强代码示例&#xff1a; 传统谱减法 function enhanced traditional_spectral_subtraction(noisy, fs, wlen, inc, NIS, a, b)% 参数说明&#xff1a;% noisy - 带…

symbol【ES6】

你一闭眼世界就黑了&#xff0c;你不是主角是什么&#xff1f; 目录 什么是Symbol&#xff1f;‌Symbol特点‌&#xff1a;创建方法&#xff1a;注意点&#xff1a;不能进行运算&#xff1a;显示调用toString() --没有意义隐式转换boolean 如果属性名冲突了怎么办&#xff1f;o…

LeetCode 649. Dota2 参议院 java题解

https://leetcode.cn/problems/dota2-senate/description/ 贪心。不会写。 class Solution {public String predictPartyVictory(String senate) {boolean rtrue,dtrue;int flag0;//flag>0,d前面有r;flag<0,r前面有dchar[] senatessenate.toCharArray();//每一轮while(r…

机器学习第二十二讲:感知机 → 模仿大脑神经元的开关系统

机器学习第二十二讲&#xff1a;感知机 → 模仿大脑神经元的开关系统 资料取自《零基础学机器学习》。 查看总目录&#xff1a;学习大纲 关于DeepSeek本地部署指南可以看下我之前写的文章&#xff1a;DeepSeek R1本地与线上满血版部署&#xff1a;超详细手把手指南 感知机详解…

maven快速上手

之前我们项目如果要用到其他额外的jar包&#xff0c;需要自己去官网下载并且导入。但是有maven后&#xff0c;直接在maven的pom.xml文件里用代码配置即可&#xff0c;配置好后maven会自动帮我们联网下载并且会自动导入该jar包 在右边的maven中&#xff0c;我们可以看到下载安装…

科学养生指南:解锁健康生活密码

健康是人生最宝贵的财富&#xff0c;在快节奏的现代生活中&#xff0c;科学养生成为保持良好状态的关键。遵循现代医学与营养学的研究成果&#xff0c;无需依赖传统中医理论&#xff0c;我们也能找到适合自己的养生之道。​ 均衡饮食是健康的基石。现代营养学强调 “食物多样&…

Qt状态机QStateMachine

QStateMachine QState 提供了一种强大且灵活的方式来表示状态机中的状态&#xff0c;通过与状态机类(QStateMachine)和转换类(QSignalTransition&#xff0c; QEventTransition)结合&#xff0c;可以实现复杂的状态逻辑和用户交互。合理使用嵌套状态机、信号转换、动作与动画、…

C++八股 —— 原子操作

文章目录 1. 什么是原子操作2. 原子操作的特点3. 原子操作的底层原理4. 内存序内存屏障 5. 原子操作和互斥锁的对比6. 常用的原子操作7. 相关问题讨论 参考&#xff1a; C atomic 原子操作_c 原子操作-CSDN博客DeepSeek 1. 什么是原子操作 原子操作&#xff08;Atomic Opera…

双紫擒龙紫紫红指标源码学习,2025升级版紫紫红指标公式-重点技术

VAR1:MA((LOWHIGHCLOSE)/3,5); VAR2:CLOSEHHV(C,4) AND REF(C,1)LLV(C,4); 双紫擒龙:REF(C,1)LLV(C,4) AND C>REF(C,2) OR REF(C,2)LLV(C,4) AND REF(C,1)<REF(C,3) AND REF(C,2)<REF(C,4) AND C>REF(C,1); VAR4:VAR1>REF(VAR1,1) AND REF(VAR1,1)<REF(VAR1,…

NeuralRecon技术详解:从单目视频中实现三维重建

引言 三维重建是计算机视觉领域中的一项关键技术&#xff0c;它能够从二维图像中恢复出三维形状和结构。随着深度学习的发展&#xff0c;基于学习的方法已经成为三维重建的主流。NeuralRecon是一种先进的三维重建方法&#xff0c;它能够从单目视频中实时生成高质量的三维模型。…

Ubuntu 上开启 SSH 服务、禁用密码登录并仅允许密钥认证

1. 安装 OpenSSH 服务 如果尚未安装 SSH 服务&#xff0c;运行以下命令&#xff1a; sudo apt update sudo apt install openssh-server2. 启动 SSH 服务并设置开机自启 sudo systemctl start ssh sudo systemctl enable ssh3. 生成 SSH 密钥对&#xff08;本地机器&#xf…

MySQL 索引的增删改查

MySQL 索引的增删改查 1 建表时创建索引 [UNIQUE|FULLTEXT|SPATIAL] INDEX|KEY [别名] (字段名 [(长度)] [ASC|DESC] )主键直接写&#xff1a; PRIMARY KEY (Id)例如&#xff1a; CREATE TABLE people (id int NOT NULL PRIMARY KEY AUTO_INCREMENT,last_name varchar(10)…

为什么现代CSS应该选择OKLCH:从颜色科学到设计系统革新

在数字界面中&#xff0c;颜色不仅是美学的载体&#xff0c;更是信息传递的重要工具。CSS Color Level 4 标准引入了 OKLCH 颜色空间, 提供​​感知均匀性​​&#xff08;颜色差异与实际视觉感受一致&#xff09;&#xff0c;解决传统HSL/HSV在调整颜色时的不自然问题。文本帮…