容器(容器中只能存放对象)

当使用STL容器去存放数据时,是存放对象合适,还是存放对象指针(对象地址)合适? 当我们使用STL容器去存放数据时,是存放对象合适,还是存放对象指针(对象地址)合适? 阅读详情

Collection(集合)

对应的工具类Collections,包含排序、洗牌等操作

List

ArrayList

本质是Object数组

private transient Object[] elementData

默认数组的长度为10

add时超过10则数组长度增加原来长度的一半

list变数组:(T[])list.toArray(newT[list.size()]);

 

LinkedList

本质是双向的链表

private static  class  Node<E>{

        E item;

        Node<E> next;

       Node<E> prev;

}

add是new Node 节点,然后关联起来

Set(同数学上的集合,元素不重复)

HashSet

本质是HashMap

private transient HashMap<E, Object>map ;

add时用key来存值,value为一个object对象

可以用来做随机抽奖的容器

sortedSet
TreeSet

本质是 TreeMap

构造时可以加入comparator 参数,自定义定义排序规则

add时用key来存值,value为一个object对象

Map(字典)

HashMap

本质是Entry数组和单向链表的结合

transient Entry[] table

static Entry <K,V> implementsMap.Entry<K,V>{

       final K key;

       V value;

       Entry<K,V> next;

       Final int hash;

}

默认数组长度为16

增加容量时2倍增加

put元素时,会先对比hash值和equals内容。判断键值是否相等。

如图:


可以用来做统计文字出现次数的容器

SortedMap

TreeMap

遍历容器的方法:

1. for循环Iterator

为什么重写类中的equals方法必须重写hashcode

将对象放到集合(set、map)时会涉及对比hashcode的情况。如果不重写调用的hashcode方法则会调用object类的hashcode方法(对象的地址),这样会造成内容相同的对象,在内存地址不同的情况下,会被存入set、map中。但是集合中要求对象中的内容不能重复的。这样就矛盾了

DSP28335 ADC模块实战:从寄存器配置到精准数据采集(附代码详解) 本文详细解析DSP28335的ADC模块配置与数据采集实战,涵盖寄存器设置、采样窗口优化、中断处理及代码实现。重点解决ADC精度问题,如采样窗口不足导致数据偏差,提供完整代码示例和调试技巧,助力工程师实现精准数据采集。 阅读详情

相关推荐

测站坐标系、地心非惯性系、经纬高互转

目录 一、经纬高转直角坐标系互转 1.1 python代码 二、wgs84转cgcs2000的转换矩阵如下 虽然cgcs2000与wgs84差别很小,但是我比较较真,还是做了两个坐标系的转换。 一、经纬高转直角坐标系互转 此处可参考链接(百度文库用手机浏览器可以打开看全部的): (1)第四章地球椭球及其数学详解 (2)第四章椭球数学变换16节 (3)大地测量学基础[1](7)(控制) 转换公式如下: LBH转XYZ: a为半长轴,e为偏心率 XYZ转LBH: a为半长轴

${王小贱}的博客 2万+

【详解】JAVA集合只能存放引用类型的的数据,不能存放基本数据类型

Java中的map、list、set、map之类的集合容器中只能存放引用类型,而不能存放类似于int、double之类的基本类型。 原因 首先,集合的存在就是为了方便对多个对象的操作才出现的,集合是存储对象最常用的一种方式,也就是说,集合的从有到无都是因为对象,人们发现要保存多个对象很麻烦,于是便发明了集合,集合是依赖对象而生的,所以就对基本数据类型"不感兴趣"。但是,现在基本数据类型都有了其对应的封装的对象,而且有了自动拆箱和装箱功能,基本数据类型和其对应对象之间的转换变得很方便,想把基本数据类型存入集合

hi25779的博客 8467

【华为OD技术面试手撕真题】134、爬楼梯 | 手撕真题+思路参考+代码解析(C & C++ & Java & Python & JS)

【华为OD技术面试手撕真题】134、爬楼梯 | 手撕真题+思路参考+代码解析(C & C++ & Java & Python & JS) 华为od机试,华为od机试真题,华为od机试E卷,华为odE卷,华为od机试真题E卷,华为OD,华为OD机试,华为OD机试真题,华为od机考,华为od机试D卷,华为od机试真题D卷,华为od手撕代码,华为od,华为od机试C卷,华为od e卷,华为2025e卷,od机试,2025E卷,华为OD机试E卷,什么是华为od,华为od介绍,全面了解华为od,2025华为od,如何

KJ.JK 2184

Java里的容器存放的元素必须是1个对象.

我们经常看到这个句话.

nvd11的专栏 3199

如何使用freesurfer对T1w结构像进行分区指标的提取?——皮层面积,灰质体积,平均厚度,厚度标准差,平均曲率、高斯曲率、曲率指数、折叠指数

如何使用freesurfer对T1w结构像进行分区指标的提取?——皮层面积,灰质体积,平均厚度,厚度标准差,平均曲率、高斯曲率、曲率指数、折叠指数

从事脑科学核磁共振方法学研究,在Nature communications等权威期刊发表研究论文,熟练掌握磁共振处理方法和统计学方法,欢迎大家和我交流。 3787

【QGIS入门实战精品教程】1.2:QGIS与ArcGIS的区别和联系

以下是GISGeography官方给出的两者之间的27点比较(译): 官方网址:https://gisgeography.com/qgis-arcgis-differences/ 1.QGIS容纳更多的数据格式 ArcGIS没有支持所有的数据格式,毫无疑问,QGIS在处理各种类型的数据时非常顺手,QGIS在数据格式方面是个多面手,在使用数据方面是它的长处。 QGIS使用GDAL/OGR库来读取和写入地理信息数据格式,支持超过70种矢量格式。QGIS一开始就是为了与PostGIS协作而诞生的,而支持的名单.

智慧空间实验室 2040

容器类仅能持有对象引用(指向对象的指针) 而不是将对象信息copy一份至数列某位置。

最近在做一个项目里,给ArrayList 赋值发现结果不正常。仔细想了一下然来是没有深入理解 “容器类仅能持有对象引用(指向对象的指针)”  这句话。 下面来看一下示例程序: import java.util.ArrayList; import java.util.Has

clam_clam的专栏 1830

RT-DETR的AIF模块+YOLOv8:融合注意力与特征交互,打造实时检测的科研级进阶方案

从理解AIF模块“细粒度注意力+跨尺度交互”的核心设计,到亲手将其嵌入YOLOv8并验证在复杂场景的表现,再到基于此探索属于自己的科研与工程方向——这个过程能让你深刻理解“注意力机制与CNN融合”在实时检测中的核心价值。现在就开始行动,相信你会在实时目标检测的“智能进化”之路上,走出一条属于自己的技术路径。从实验对比图可见,集成AIF模块的YOLOv8,其mAP(平均精度)在多个阈值下均有提升,尤其是mAP50-95(高IoU阈值下的精度)提升更为显著,充分证明了AIF对细粒度特征的捕捉能力。

m0_64661770的博客 188

STL容器里存放对象还是指针

一.问题的引出: 容器可以存放对象,可以存放指针,这里要谈的是两者的使用问题。就是什么时候存放对象更好,什么时候存放指针更好?   二.问题的分析过程: 1. 首先说下stl容器的工作方式   对于内建类型(int float char等),容器的工作方式是纯粹的位拷贝,这里没有什么需要多说的。 对于自定义的对象,容器容纳了对象(比如通过insert或pu

zhongkeli的专栏 1816

2024年上半年试题二:论性能测试方法及其应用

2025年1月,我以系统分析师的身份参与了公司OA系统的开发与建设。该系统包含的功能有打卡签到、公文流转、工资查询等。我们吸取了之前由于系统使用人数激增暴露出的短时间卡顿等问题,所以在本次开发中,我们非常重视系统的性能测试。通过自动化的测试工具模拟多种正常、峰值及异常负载条件对系统的各项性能指标进行测试。性能测试在软件的质量保证中起着重要的作用,它包括的测试内容丰富多样,常见的负载测试和压力测试都属于性能测试。

银帅 548

华为OD机试真题 新系统【小花获胜的奶茶】

华为OD机试真题 新系统【小花获胜的奶茶】,提供C语言、Java、C++、Python、Go、JavaScript源码实现,并提供完整思路讲解,以及在线OJ模拟做题。华为OD机试真题 【小花获胜的奶茶】多语言题解。

qq_45776114的博客 382

什么是集合?

本文章转自博客园-黎先生,原文链接:点击阅读原文 一、集合的由来 通常,我们的Java程序需要根据程序运行时才知道创建了多少个对象。但若非程序运行,程序开发阶段,我们根本不知道到底需要多少个数量的对象,甚至不知道它的准确类型。为了满足这些常规的编程需要,我们要求能在任何时候,任何地点创建任意数量的对象,而这些对象用什么来容纳呢?我们首先想到了数组,但是!数组只能存放同一类型的数据,而且其长度是固定的,那怎么办了?集合便应运而生了。 二、集合是什么? Java集合类存放在java.util包中,是一个用来.

秃头的博客 172

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

Java learn 集合框架 泛型 Generic初始了解

涉及集合框架这部分的泛型 权当了解 因为泛型的知识点远远不止这一点 比如:泛型的知识还包含 支持泛型的类 泛型转型 通配符 此处运用到的泛型: 1、不指定泛型的容器 可以放下各种类型的元素 2、指定泛型的容器 只能存放该类型的类及其子类 具体示例: package test; import java.util.ArrayList; import java.util.List; import le.APHero; import test.testFile; import test.Hight; publ

yooppa的博客 118

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

第十二章 集合

1、集合 集合是一个存放任意数量对象的引用的容器(多个对象放在另一个对象中,此对象可称为一个集合对象) 注意:如果集合对象创建时不指定泛型,则在当前集合中可以存放任意类型的对象。 包括:Collection List Set Map List:接口的实现类有:ArrayList、LinkedList、Vector 特点:有序、可重复 ArrayList:数组结构(底层使用数组来实现),以下标形式获取指定位置的元素 优缺点:查询方便(快速),插入和移除不便,可以重复添加同一个对象。 场景:一次插入

菜鸟日记 176

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

Function<? superT> 中泛型总结

List<? super T> 当容器用时,能容纳T本身及T的子类;用来向函数传递参数时,只能传递T及T的超类 List<? extends T> 当容器用时,只能容纳null;用来向函数传递参数时,只能传递T及T的子类 ...

HUACONG_zhizun的博客 764

JDK源码学习(三)---集合

目录 一、简介 1、概述 2、java集合框架图 3、集合与数组的区别 二、集合概述 1、Collection接口 2、Map接口 3、Iterator接口 一、简介 1、概述 java集合类存放与java.util包中,是一个用来存放对象的容器 1、集合只能存放对象。比如你存一个int型数据1放到集合,其实它是自动转换成Interger类后存入的。java中每一种基本类型都有对应的引用类型 2、集合存放的是多个对象的引用,对象本身还是存放在堆内存中 3、集合可以存放不同类型,不

qq_37723897的博客 334

Java集合(一)

一、集合的由来 在程序的开发时,往往不知道需要创建多少对象,甚至可能不确定其准确的类型,虽然数组可以数组可以存放这些数据,但是数组只能存储统一类型的数据,而且长度是固定的,并不是能够解决不同类型,长度不定的对象的存储问题,集合也应运而来。 二、集合是什么 1、用来存放对象的容器 2、只能用于存放对象,即使存储基本类型也是转换成其应用类型后存入 3、存放的是对象的应用 ,对象还是放在堆内存中的 4、集合可以存储不同类型,长度不定的数据类型 三、集合都有什么 四、集合和数组的区别 1、数组长度无法改变且不具

weixin_45155003的博客 172

java 集合只能保存对象_Java集合不能存放基本数据类型,只存放对象的引用

Java集合如Map、Set、List等所有集合只能存放引用类型数据,它们都是存放引用类型数据的容器,不能存放如int、long、float、double等基础类型的数据。1. 集合存储对象Java集合中实际存放的只是对象的引用,每个集合元素都是一个引用变量,实际内容都放在堆内存或者方法区里面,但是基本数据类型是在栈内存上分配空间的,栈上的数据随时就会被收回的。2. 基本类型数据如何解决呢?可以通...

weixin_35886660的博客 2250

java对象容器存放的是引用_Java里的容器存放的元素必须是1个对象

学习Java的同学注意了!!!学习过程中遇到什么问题或者想获取学习资源的话,欢迎加入Java学习交流群,群号码:456544752我们一起学Java!我们经常看到这个句话:Java里存放的容器只能是1个对象.一. 值类型和对象类型.实际上, java里的变量可以分为两种类型, 一种是值类型. 一种是对象类型.1.1 值类型变量所谓值类型的变量就是内容(值)直接保存在stack(栈区)或静态区的变量...

weixin_42228796的博客 509

java对象容器存放的是引用_Java里的容器存放的元素必须是1个对象.

我们经常看到这个句话:Java里存放的容器只能是1个对象.一. 值类型和对象类型.实际上, java里的变量可以分为两种类型, 一种是值类型. 一种是对象类型.1.1 值类型变量所谓值类型的变量就是内容(值)直接保存在stack(栈区)或静态区的变量.例如int i = 10;这个i就是值类型变量. 这个变量的内容(值)存放在内存的栈区. 如上图, 红色部分就是值类型变量i所占的内存, 共4个...

weixin_35879493的博客 483

STL容器中 存放指针与对象区别 遍历删除与释放操作

c++中我相信大家经常要用到STL里面的各种容器来存放自己的数据,既然我们用的这么频繁那么就相应该有一些疑问?

破茧 1万+

STL容器里存放对象还是指针?

http://blog.youkuaiyun.com/weiqubo/article/details/7291129 一.问题的引出: 容器可以存放对象,可以存放指针,这里要谈的是两者的使用问题。就是什么时候存放对象更好,什么时候存放指针更好? 二.问题的分析过程: 1. 首先说下stl容器的工作方式 对于内建类型(int float char等),容器的工作方式是纯粹的位拷贝,这里没有什么需要多

miao6664659的专栏 1667

Java里的容器存放的元素必须是1个对象

学习Java的同学注意了!!! 学习过程中遇到什么问题或者想获取学习资源的话,欢迎加入Java学习交流群,群号码:456544752 我们一起学Java! 我们经常看到这个句话: ...

chuifuhuo6864的博客 373
上一篇: 内部类(4种)
下一篇: 异常处理
javalive09
博客等级 码龄16年 43粉丝 281原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值