Java 集合

【Java 集合】 集合概述Java 集合概览Java 集合,也叫作容器,主要是由两大接口派生而来:一个是Collection接口,主要用于存放单一元素;另一个是Map接口,主要用于存放键值对。对于CollectionListSetQueue。Java 集合框架如下图所示:Java 集合框架概览注:图中只列举了主要的继承派生关系,并没有列举所有关系。比方省略了等抽象类以及其他的一些辅助类,如想深入了解,可自行查看源码。说说 List, Set, Queue, Map 四者的区别?List。 阅读详情

存储对象可以考虑:数组、集合。但是使用数组存储数据存在一些弊端:一旦创建,其长度不可变;真实的数组存放的对象个数是不可知的。
Java集合可分为Map和Collection两种体系。

Collection接口继承树
这里写图片描述
Collection接口:
1.Set:元素无序、不可重复的集合(HashSet、LinkedHashSet、TreeSet)添加进Set中的元素所在的类,必须equals()和hashCode()方法,保证元素的不可重复
2.List:元素有序、可重复的集合(ArrayList、LinkedList、Vector)<删除remove(int index),修改set(int index,Object obj),获取get(int index),插入add(int index,Object obj)>
添加进List集合中的元素(或对象)所在的类一定要重写equals()方法
3.Map接口:具有映射关系“key-value对”的集合(HashMap、LinkedHashSet、TreeMap、HashTable<子类ProPerties>)
【集合API
1.size():返回集合中元素的个数
2.add(Object obj):向集合中添加一个元素
3.add(Collection coll):将形参coll中包含的所有元素添加到当前集合中
4.isEmpty():判断集合是否为空
5.clear():清空集合元素
6.contains(Object obj):判断集合中是否包含指定的obj元素,如果包含,返回true;反之返回false
7.containsAll(Collection coll):判断当前集合是否包含coll中所有的元素
8.retainAll(Collection coll):求当前集合与coll的共有的元素,返回给当前几个
9.remove(Object obj):删除集合中的obj元素,若删除成功,返回true,否则返回false
10.removeAll(Collection coll):从当前集合中删除包含在coll中的元素。
11.toArray():将集合转化为数组
12.iterator():返回一个Iterator接口实现类的对象】

List接口常用方法
这里写图片描述

List:ArrayList底层是数组(主要实现类),LinkedList底层是链表(频繁的插入和删除建议用LinkedList),Vector(古老的实现类,线程安全的)

遍历集合(三种方式)
这里写图片描述

Set:HashSet(主要实现类)、LinkedHashSet、TreeSet
Set的存储是无序的(元素在底层的存储的位置是无序的),不可重复的(当向Set中添加相同的元素时,后边的不会被添加进去)
Set中的元素使用哈希算法存储。当向Set中添加对象的时候,首先调用此对象所在的hashCode()方法,计算此对象的哈希值,此哈希值决定了此对象在Set中的存储位置,若此位置之前没有对象存储,则这个对象直接存储到此位置,若此位置已有对象存储,再通过equals()比较这两个对象是否相同,如果相同,后一个对象就不能再添加进来。要求:hashCode()方法要与equals()方法一致。
LinkedHashSet:使用链表维护了一个添加进集合的顺序,导致我们便利LinkedHashSet集合元素时,是按照添加进去的顺序遍历的。
TreeSet:1.向TreeSet中添加的元素必须是同一个类的
2.可以按照添加进集合中 的元素的指定的顺序遍历。像String,包装类等默认按照从小到大的顺序遍历
3.当向TreeSet中添加自定义类的对象时,有两种排序方法:自然排序和定制排序
4.自然排序:要求自定义类实现java.lang.Comparable接口并重写其compareTo(Object obj)的抽象方法,在此方法中,指明按照自定义类的哪个属性进行排序。
5.向TreeSet中添加元素时,首先按照compareTo()方法进行比较,一旦返回0,虽然仅是两个对象的此属性值相同,但程序会认为这两个对象是相同的,进而后一个对象就不能添加进来。
compareTo()与hashCode()以及equals()三者保持一致。

Map:保存具有映射关系的key-value。【HashMap(Map的主要实现类)    LinkedHashMap   
TreeMap(按照添加Map中的元素的key的指定属性进行排序,要求:key必须是同一个类的对象)   HashTable】

Map中:
1.key用Set存放,不允许重复,即同一个Map对象对应的类,须重写hashCode()和equals()方法。value是Collection存放的,可重复。一个key-value对,是一个Entry,所有的Entry是用Set存放的,也是不可重复的。
2.向HashMap添加元素时,会调用key所在类的equals()方法,判断两个key是否相同,如果相同,只能添加进后添加的那个元素。(添加用.put(key,value))
这里写图片描述

这里写图片描述

如何遍历Map?
Set keySet()
Collection values()
Set entrySet()
这里写图片描述

这里写图片描述

这里写图片描述

Collections:操作几个的工具类
这里写图片描述

面试题:Collection与Collections的区别。

这里写图片描述

这里写图片描述

这里写图片描述

这里写图片描述

【Java集合 1】java集合有哪些 一、数组Array和集合的区别 1、数组是大小固定的,并且同一个数组只能存放类型一样的数据(基本类型/引用类型) 2、JAVA集合可以存储和操作数目不固定的一组数据。 3、若程序时不知道究竟需要多少对象,需要在空间不足时自动扩增容量,则需要使用容器类库,array不适用。  注:使用相应的toArray()和Arrays.asList()方法可以相互转换。 二、Java集合 集合类存放于Java.util包中。 集合类存放的都是对象的引用,而非对象本身,出于表达上的便利,我们称集合中的对象就是 阅读详情

相关推荐

变压器耦合放大器(低频应用+高频应用)

变压器耦合放大器(低频应用+高频应用)

m0_54943120的博客 2275

【java】基本类型、自定义类型set集合的多种排序方式:lambda表达式排序、JDK API、Java8 stream流

【java】基本类型、自定义类型set集合的多种排序方式:lambda表达式排序、JDK API、Java8 stream流

想去码头整点儿薯条儿~ 4340

kaggle——信用卡欺诈检测项目实战

笔记第一步:了解题目,确定任务第二步:场景分析第三步:数据预处理看是否有缺失值查看样本类别分布数据不均衡解决办法数据值标准化/归一化第四步:特征工程1)查看特征分布情况,把不同类别下特征分布相差不大的特征删除掉2)特征缩放第五步:模型训练处理不平衡样本交叉验证求取最好的模型参数第六步:模型评估使用下采样数据训练与测试使用下采样数据训练与测试(不同的阈值对结果的影响)使用下采样数据训练,原始数据进行测试原始数据进行K折交叉验证使用原始数据进行训练和测试查看ROC曲线逻辑回归阈值选择过采样总结 第一步:了解题目

weixin_45942265的博客 1万+

接口List(集合)

List接口介绍 java.util.List 接口继承自 Collection 接口,是单列集合的一个重要分支,习惯性地会将实现了 List 接口的对象称为List集合。在List集合中允许出现重复的元素,所有的元素是以一种线性方式进行存储的,在程序中可以通过索引来访问集合中的指定元素。另外,List集合还有一个特点就是元素有序,即元素的存入顺序和取出顺序一致。 总结: ja...

weixin_30887919的博客 254

嵌入式软件面试常见问题及答案

干了多年的嵌入式,被面试过,也面过不少新人,下面这些是面试中很常见的一些问题及答案,答案可以根据自己的经验自己思考下。--持续补充并更新

weixin_37553721的博客 6023

STM32家电安全开发实战:手把手教你用X-CUBE-CLASSB通过IEC60730 Class B认证

本文详细解析了如何使用STM32的X-CUBE-CLASSB软件包通过IEC60730 Class B认证,涵盖认证核心要求、软件包架构、工程集成配置及调试技巧。针对家电安全开发,提供了从单元测试到压力测试的全流程方案,帮助开发者快速实现符合国际安全标准的嵌入式控制系统。

pink的博客 704

java 对set中属性做排序

我整理的一些关于【Java】的项目学习资料(附讲解~~)和大家一起分享、学习一下:https://d.51cto.com/f2PFnNJava 对 Set 中属性做排序 在Java编程中,集合(Collection)是数据存储和处理的核心部分。特别是Set集合,它是一种不允许重复元素的集合。尽管Set本身不保证元素的顺序...

weixin_36212539的博客 332

毫米波雷达SLAM实战:如何在无GPS的地下隧道实现精准三维建图(附Python代码)

本文深入探讨了在无GPS信号的地下隧道等拒止环境中,如何利用毫米波雷达SLAM技术实现精准三维建图。文章系统分析了毫米波雷达点云数据稀疏、噪声多的挑战,并提供了从环境配置、核心算法(如特征提取、ICP配准、回环检测)到全局优化的完整实战解决方案,附有可运行的Python代码,帮助开发者构建鲁棒的自主导航与建图系统。

t8u9v0w1x的博客 239

JAVA集合遍历之Set

HashSet(无序,插入顺序不一定和输出顺序一致,按hash值插入)(1)超级forimport java.util.HashSet; public class Set_HashSet { public static void main(String[] args) { HashSet&lt;String&gt; set=new HashSet&lt;String&gt;(); s...

zgerbin 428

eLabRadio软件无线电虚实结合仿真开发平台简介

在使用仿真平台时,不要关闭设备或断开设备与PC机之间的网络连接,否则,仿真平台将无法正常工作。注:采用eNodeX设备认证方式,当出现“设备不存在”的报错时,请检查计算机IP是否和硬件设备IP处于同一网段,或者是否是先连接好网线,再开启硬件设备的。①此登录方式下,需要先建立软件与硬件的通信:在登录窗口点击【网络配置】,参照下图输入设备IP,服务器地址无需设置,设置完成后点击确认,此时登录界面无需设置账号密码;,拷贝到电脑上,使用管理员权限运行setup.exe,下一步直到安装完成,桌面会生成快捷方式。

weixin_55349105的博客 6319

基于未来出行解决方案的场景实例:城市空中交通(UAM)的飞行路径规划与避障

本文介绍了使用Simulink进行城市空中交通(UAM)飞行路径规划与避障的仿真方法。主要内容包括:1)UAM系统架构与核心挑战;2)详细建模步骤,从城市3D环境构建到飞行器动力学模拟;3)全局路径规划(A*/RRT*)和局部避障(DWA/APF)算法实现;4)多机协同与冲突解决;5)关键场景仿真与性能评估;6)高级功能拓展方向。通过Simulink的数字孪生系统,可有效验证UAM在复杂城市环境中的可行性,为未来立体交通发展提供技术支撑。

xiaoheshang_123的博客 257

《Java编程思想》为什么我的HashSet有排序功能?

《Java编程思想》为什么我的HashSet有排序功能?HashSet排序现象源码分析Integer的hash值是多少呢?扩展 HashSet排序现象 最近在看Set集合的知识,Set是一种不保存重复元素的集合,如下代码我们添加100次 0-29之间的数字,但是最后的运行结果intSet里面只有0到29之间的数字。 import java.util.*; public class SetOfInt...

qq_35764460的博客 732

手把手教你学PCIE-- 热插拔电路设计与实现方案

PCIe热插拔(Hot-Plug)技术允许用户在系统运行时安全地插入或移除设备,而无需重启系统。本文将深入讲解热插拔电路的设计要点、关键器件选型及信号协议规范,涵盖机械结构、电气保护和电源管理三大核心模块。​。

MHD0815的博客 440

Java集合 之 单列集合

java的单列集合,看这一篇就够了

qq_73698057的博客 3086

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

Java【集合】

Java的特殊数据容器——集合

在下的博客 1877

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

java集合

一、集合的由来   通常,我们的程序需要根据程序运行时才知道创建多少个对象。但若非程序运行,程序开发阶段,我们根本不知道到底需要多少个数量的对象,甚至不知道它的准确类型。为了满足这些常规的编程需要,我们要求能在任何时候,任何地点创建任意数量的对象,而这些对象用什么来容纳呢?我们首先想到了数组,但是数组只能放统一类型的数据,而且其长度是固定的,那怎么办呢?集合便应运而生了! 为了对集合有个...

uyhbrr的博客 9058

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

Java——集合

List 集合的特点:List 是有序集合,它维护元素的插入顺序。可以通过索引访问元素,索引从 0 开始,依次递增。与 Set 不同,List 允许存储重复的元素。方法名描述在此集合中的指定位置插入指定的元素删除指定索引处的元素,返回被删除的元素修改指定索引处的元素,返回被修改的元素返回指定索引处的元素indexOf 方法返回指定元素第一次出现在列表中的索引,如果列表不包含该元素,则返回 -1。

weixin_73551991的博客 1929

Java集合总结

Java中的集合(Collections)框架是一个非常重要的部分,它提供了一套设计良好的支持对一组对象进行操作的接口和类。这些接口和类位于java.util包中,使得我们可以以统一和灵活的方式处理对象集合。

2301_81579342的博客 1265

java集合中存放集合_集合与Java中的集合

java集合中存放集合 收集框架 Collection是Java Collection Framework的顶级接口。 List,Queue和Set是此框架的主要子接口。 集合接口是java.util.package的成员。 Collection接口中有几种方法可用于添加/删除元素,获取数组的大小,进行迭代或检查数组是否为空。 图片来源: javatpoint / collect...

专业的开发者“讨论” 2745

【Java集合一】集合概述

介绍了Java集合框架,包括其概述、主要数据结构(如List、Set、Queue、Map)以及相关实现类(如ArrayList、LinkedList、HashSet、HashMap等)。内容涵盖了集合框架的原理、特点、使用方法以及常见操作。

叉烧钵钵鸡的博客 1214

Java 集合详解

发现一个特点,上述所有的集合类,除了 map 系列的集合,即左边集合都实现了 Iterator 接口,这是一个用于遍历集合中元素的接口,主要hashNext(),next(),remove()三种方法。我们知道在一般的数组中,元素在数组中的索引位置是随机的,元素的取值和元素的位置之间不存在确定的关系,因此,在数组中查找特定的值时,需要把查找值和一系列的元素进行比较,此时的查询效率依赖于查找过程中比较的次数。但若非程序运行,程序开发阶段,我们根本不知道到底需要多少个数量的对象,甚至不知道它的准确类型。

2401_86940371的博客 1448

java中集合怎么定义_Java集合系列(一):集合的定义及分类

1. 集合的定义什么是集合呢?定义:集合是一个存放对象的引用的容器。在Java中,集合位于java.util包下。2. 集合和数组的区别(面试常问)提到容器,就会想起数组,那么集合和数组的区别是什么呢?(这里是重点,面试可能问的比较多)数组和集合都是Java中的容器数组的长度是固定的,集合的长度是可变的数组只能存储相同数据类型的数据,这里的数据类型可以是基本数据类型,也可以是引用类型集合可以存储不...

weixin_34952710的博客 4618

Java集合

本文摘要: JUnit测试框架和Java集合是Java编程中的重要知识点。JUnit用于单元测试,可通过注解实现测试方法运行,但需注意与Scanner的兼容性问题。集合优化了数组的缺点,包括可变长度和泛型支持。集合分为Map、Collection(List和Set)和Collections工具类。List集合有ArrayList(数组实现,查询快增删慢)和LinkedList(链表实现,查询慢增删快)两种实现方式,并提供了多种遍历方法包括标准for、增强for、Lambda表达式和迭代器。

weixin_74894450的博客 1276

java 集合转json_Java集合 Json集合之间的转换

1. Java集合转换成Json集合关键类:JSONArray jsonArray = JSONArray.fromObject(Object obj);使用说明:将Java集合对象直接传进JSONArray.fromObject()中,得到一个JSONArray集合,再直接使用JSONArray的toString()方法,便可得到json集合示例代码:@Testpublic voidtestCr...

weixin_35851515的博客 3203
下一篇: Scala中的数组、映射、元组、集合
echo_ale
博客等级 码龄10年 0粉丝 6原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值