Java-集合类

高速PCB设计中串扰的成因、影响与实战控制策略 在高速数字电路与硬件系统设计中,信号完整性是确保系统稳定可靠的核心基础。其核心原理在于,当信号在传输线上传播时,会伴随产生电场与磁场,若相邻导线距离过近,便会通过电磁场耦合产生不期望的能量转移,即串扰。这一现象会直接导致信号波形畸变、时序偏移和噪声裕量降低,严重影响系统性能。从技术价值看,深入理解并有效控制串扰,是提升数据传输速率、保障系统稳定性和降低误码率的关键。其应用场景广泛覆盖了从高速SerDes链路、DDR内存接口到高精度模拟电路等几乎所有现代电子系统。本文聚焦于高速PCB设计中的串扰问题,系统剖析 阅读详情

集合类

集合和数组的区别:

|--数组是固定长度的,而集合是可变长度的;

|--数组当中存储对象的时候存的都是同一种类型的,而集合是只要是对象都是可以的;

|--集合类的应用领域较广泛的;

为什么会出现这么多的容器呢?

|--因为每一个容器对数据的存储方式都有不同,这个存储方式成为:数据结构;

|--因为数据结构的不同,就进行了单独的划分;

add方法里面接收的Object类型的,这个就是可以接收任意类型的对象,也就是多态的出现;

集合里面存储的都是地址,而不是对象,

元素的取出、

|--我的目的是取出元素并操作元素,不是仅仅的取出元素;

|--Iterator<E> iterator()  返回值类型是一个接口   获取迭代器,用于取出集合中的元素;

迭代器

|--其实就是集合的取出元素的方式;

List集合的共性方法

|--list集合的特点:这个集合体系特点是元素是有序的,同时元素是可以重复的,因为该集合体系是有索引的;存个zhangsan,我再存一个zhangsan

|--Set集合的特点:元素是无序的,元素是不可重复的;

|--凡是带有角标的都是list集合的特有方法

|--ListIterator是list集合特有的迭代方法;

|--只有list集合具备,可以改变一个位置上的元素;用的是E set(int index, E element) 

|--凡是带有可以操作角标的方法 都是list体系特有的方法;

ListIterator:列表迭代器

|--想要在迭代过程中,添加或者是删除元素;

List集合特有的迭代器  ListIterator是Iterator的子接口

|--在迭代的时候,不可以通过集合对象的方法操作集合中的元素;否则会反生并发修改异常;

|--所以在迭代的时候,只能用迭代的方式来操作元素,不能既有集合的方式,又有迭代的方式来操作元素,否则会发生并发修改异常;

Collection 

|--List

|--ArrayList:底层的数据结构是数组结构,特点:查询速度很快,而增删的速度稍慢;是线程不同步的

|--LinkedList:底层用的是链表的数据结构,特点:查询速度较慢,增删速度很快;是线程不同步的

|--Vector:底层是数据结构是数组数据结构,特点:无论增删或者是查询都是超慢的,这个是线程同步的;被ArrayList替代了;

|--ArrayList和Vector,分别是50%延长和100%的延长,ArrayList这个是比较节约空间的;

|--Vector支持枚举,而ArrayList不支持枚举;

LinkedList:

addFirst()

addLast()

get方法只是在获取元素,但是不删除元素;

getFirst()

getLast()

remove方法在于:获取元素并删除元素;

removeFirst()

removeLast()

ArrayList的第二个练习

|--要用到子类特有的方法的时候,要做向下转型的动作;

|--在ArrayList容器中判断元素是否相同,用的是equals方法;

|--而Person类中的equals方法比较的是地址值是否相同,而这边的所有的元素的地址值都是不相同的;

|--这时我们要有我们自己的比较方法;就是覆盖Object类中的equals方法;

|--要覆盖一下Object类中的equals方法;

|--List集合判断元素是否相同,依据的是元素的equals方法;-->去除重复元素的例子;

|--去除重复元素:第一个是要对人进行描述,分别描述人的姓名和年龄

|--然后要对所有的元素进行遍历,并要进行强转的方法,要使用到子类特有的方法,

|--还有就是去除重复元素,使用的是newAl,判断newAl集合中是否都是单独的元素;

|--还有一个至关重要的动作,就是你要按照年龄和姓名进行排序,它是不知道的,因此,你要覆盖Object类中的equals方法,而建立自己的比较方式,用instanceof进行判断;

|--在List集合里面的 contains和remove底层用的全都是equals方法进行的比较;

Set集合:

|--通过查看API文档,发现Set集合的方法和Collection集合是相同的;

|--Set集合

|--HashSet集合:底层的数据结构是哈希表;线程是不同步的

|--HashSet集合的判断的是哈希值,如果哈希值是相同的话,么还要再判断一下咱们的对象是否是相同的;判断是否是同一个对象,用equals方法;

|--也就是要判断两次;

Set集合的元素取出只有一个就迭代器,因为它里面的方法和Collection方法是一致的;

|--HashSet是如何保证元素唯一性的呢?

|--是通过元素的两个方法,hashCode和equals来完成的;如果元素的HashCode值相同,才会判断equals是否为true,

如果元素的hashCode值不相同,那么就不会判断equals方法;

|--通常情况下,在要定义一个对象的时候,通常情况下要定义两个方法,就是覆盖hashCode和equals方法;

注意:

Set集合

|--HashSet:是无序的

|--TreeSet:是有序的,可以对元素进行排序;

|--HashSet对于元素判断是否存在,以及删除等操作,依赖的方法是元素的hashCode和equals方法;

|--ArrayList:依赖的是equals

|--HashSet集合依赖的是什么?先依赖hashCode,然后再依赖equals;

|--TreeSet:是有序的,底层的数据结构是二叉树,底层保证元素唯一性的依据是compareTo和return 0;

|--可以对集合中的元素进行排序;

|--在TreeSet集合第一种排序,当主要提交相同时,一定要判断一下次要条件;

|--TreeSet集合的第一种是让元素自身具备比较性,实现Comparable接口,和覆盖compareTo方法;

|--TreeSet集合的第二种排序方式,这时让集合具备比较性,定义一个比较性,将比较器

|--当两种排序都存在时,以比较器为主;

|--二叉树判断元素是否相同都是以return 0;来判断的;

泛型:是1.5出现的类型安全机制;

|--ArrayList<String> al = new ArrayList<String>();-->定义一个容器,这个容器的类型是String类型的;

|--泛型的出现的出处:

|--将运行时期出现的问题,转移到了编译时期,方便程序员解决问题,让运行时期的问题减少,安全;

|--避免了强制转换的麻烦;

集合上面要加泛型。还有就是迭代器上面要加泛型,避免了强转的麻烦;

在使用的java提供的对象时,什么时候使用泛型呢?

|--通常在集合框架中很常见;

泛型类:

|--什么时候定义泛型类:当类中的引用数据类型不确定的时候,早期是定义Object来完成的,现在是定义泛型来完成的;

泛型定义在方法上

为了让不同的方法可以操作不同的类型,而且类型还是不确定的;

那么可以将泛型定义在方法上;

|--泛型定义在方法上,传入什么类型都是可以的;

|--而泛型定义在类上,指定什么类型,就是什么类型;

|--特殊之处:静态方法不可以访问类上定义的泛型,如果静态方法操作的引用数据类型不确定,可以将泛型定义在方法上;

|--泛型定义在方法上,要放在返回值类型的前面

泛型的高级应用

?通配符,也可以理解为占位符

泛型的限定:

? extends E:下限

? super E:上限

Map 集合:该集合存储的是键值对,一对一对往里存,而且要保证键的唯一性;

|--Map

|--Hashtable:底层是哈希表数据结构,不可以存入null作为键,null作为值的情况,同步的

|--HashMap:底层是哈希表数据结构,允许使用null键,null值,是不同步的

|--TreeMap:底层是二叉树数据结构,线程不同步的,可以用于给map集合排序;

和Set集合很像;

Map集合的两种取出方式:Map集合是没有迭代器的;

1、keySet:将map中的所有的键存入到Set集合,因为Set集合具备迭代器,所以可以通过迭代的方式取出所有的键,在根据get方法,获取每一个键对应的值;这个里面返回来的是Set集合

2、entrySet:返回的是一个关系,这个关系就是Set<Map.Entry<String,String>>;

【赛题解析&命令脚本配置】2023年全国职业院校技能大赛GZ073网络系统管理赛项赛题第10套模块A:网络构建 & (五)网络运维配置+(六)SDN网络配置-命令配置 阅读详情

相关推荐

电力市场小白必看:手把手教你用Matlab实现市场出清电价计算(附完整代码)

本文为电力市场初学者提供了使用Matlab计算市场出清电价的完整指南。通过Yalmip和Matpower工具包,详细讲解了从环境配置到模型构建、求解及结果分析的整个过程,帮助读者快速掌握节点电价计算的核心技术。

weixin_30379531的博客 74

Java基础之常见集合 && api && 详细示例代码

java基础集合的使用教程以及常用的api

ros275229的博客 1061

Solidworks转URDF避坑实录:从履带机器人到ROS仿真的完整配置流程

本文详细介绍了将Solidworks履带机器人模型转换为URDF格式并配置ROS仿真的完整流程,重点解析了坐标系设置、复杂关节定义、插件配置等关键步骤中的常见问题与解决方案,帮助开发者高效实现履带机器人在RVIZ和Gazebo中的精确仿真。

weixin_30693683的博客 457

集合常用API

Collection API如下: Collection是集合的祖宗类,它的功能是全部都可以继承使用的,所以要学习它。 - public boolean add(E e) : 把给定的对象添加到当前集合中。 - public void clear() : 清空集合中所有的元素。 - public boolean remove(E e) : 把给定的对象在当前集合中删除。 - public boolean contains (object obj) : 判断当前集合中是否包含给定的对象。 - pub

weixin_44765236的博客 680

当Kmer遇到多倍体:复杂基因组Survey分析中的避坑指南

本文针对小麦、棉花等多倍体及高杂合复杂基因组的Survey分析,深入解析了Kmer分布图解读中的常见陷阱。文章重点探讨了如何超越理想二倍体模型,利用Smudgeplot等工具准确判断基因组倍性,并提供了从参数优化、污染判断到结果验证的全流程实战指南,帮助研究者规避错误,获得更准确的基因组大小、杂合度等关键信息。

yhn45678901的博客 1010

6.2 磁悬浮轴承:软件架构与实现

本文系统阐述了磁悬浮轴承控制系统的软件架构与实现方法。采用分层架构设计,包括硬件抽象层、实时控制内核、控制算法层和应用层,确保系统实时性和可靠性。重点分析了电流环、位置环等关键控制任务的调度策略,比较了不同硬件平台(DSP、ARM、FPGA)的软件实现方案。强调模块化设计、配置化管理等工程实践,并详细介绍了从算法仿真到系统联调的完整开发流程。最后指出严格的测试验证是保证系统性能的关键,需通过多阶段测试评估起浮时间、稳态精度等核心指标。

技术工作者 755

集合概述以及常用API

集合概述、Collection集合的体系特点、Collection集合的常用API、Collection 集合的遍历方法、Collection 集合存储自定义类型的对象、常见数据结构等。。。

weixin_68151004的博客 591

【crawler笔记】R语言简单动态网页爬虫(rvest包)示例

1、爬虫目标 大家普遍认为Python的爬虫功能强大,但在解决动态加载或者登陆网站时,Python存在一定困难的,相对于一些普通爬虫,使用R语言会更方便。 以https://www.thepaper.cn/为例,爬取首页的新闻(标题、内容、时间),主要采用的是动态网页中常用的httr包。 初始学习时,参考了B站《20分钟入门基于R语言的网络爬虫_哔哩哔哩 (゜-゜)つロ 干杯~-bilibili》的视频,但代码运行出现了报错,所以在原代码上做了修改。 2、代码分析及报错修改 library(rv

seeyouer1205的博客 3275

nonebot2 原神角色查询插件

还有一个好消息,辞辞bot开源了,开源地址https://gitee.com/yevin_bot/cici-bot。今天为你们带来的是原神角色查询插件。作者QQ:1648576390。交流群:934541995。时间:2022年8月。

m0_66648798的博客 2727

手把手教你用Zygo干涉仪分析光学元件:从原始数据到清晰面形图的完整滤波流程

本文详细介绍了使用Zygo干涉仪和MetroPro软件分析光学元件面形的完整滤波流程,从原始数据解析到清晰面形图生成。重点讲解了滤波策略选择、参数调优技巧及常见问题解决方案,帮助工程师高效处理干涉图数据,提升光学元件检测精度。

weixin_42641998的博客 408

opencv去除印章痕迹

今天看到一个很有意思的程序,就是去除票据上的红色印章,觉得很有意思,就把它抄过来记录一下,同时自己也开了一下脑洞。 原来的程序来自:https://www.cnblogs.com/skyfsm/p/7638301.html 可以看到图像效果很不错,下面是源码实现: #include &lt;iostream&gt; #include &lt;opencv2/imgproc/imgpro...

zeng_haoyu的博客 7962

Java基础--常用API--集合类相关API

一、泛型   1、泛型的本质是将类型参数化,即将数据类型作为参数。    2、泛型可以在编译期进行检查,其所有的强制转换是隐式且自动的,提高了代码的安全性。     3、泛型可以用在类(泛型类)、接口(泛型接口)、方法(泛型方法)的创建。      4、泛型的类型参数只能为引用类型,不能为基本类型。 二、常用集合类 1、体系分类:   (1)Collection体系: Set、...

weixin_30902675的博客 286

UNet 改进(27):结合SCSE注意力机制的UNet网络实现

本文介绍了一种结合SCSE注意力机制的改进UNet网络架构。该网络在保持UNet经典编码器-解码器结构基础上,通过在每层添加SCSEBlock模块,融合了通道注意力和空间注意力机制。通道注意力通过全局池化和1×1卷积生成通道权重,空间注意力则产生空间权重图,二者相加增强关键特征响应。该设计具有以下优势:1)保持原始UNet的多尺度特征提取能力;2)通过注意力机制提升对重要区域的关注度;3)计算效率高,仅增加少量参数。测试显示网络能保持输入输出分辨率不变,适用于医学图像分割等像素级预测任务。完整代码实现了5层

2401_82355416的博客 415

Java——集合类

Java 集合类是用于存储和操作数据的核心工具,主要分为Collection和Map两大接口体系,每个接口下有多种实现类。

weixin_44762713的博客 667

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

Java中有哪些集合类?常用的几种java集合类总结 详细解读 Java 的集合类

Java 的集合框架是一个统一的架构,用于表示和操作一组对象。它提供了多种接口和类,遵循了一定的设计原则,具备更高的灵活性和可扩展性。Collection:集合的根接口。List:有序集合,允许重复元素。Set:不允许重复元素的集合。Map:键值对集合,键唯一但值可以重复。Queue:用于表示数据结构中的队列。Java 集合类框架为开发者提供了强大的工具,以方便有效地操作数据。通过理解每种集合接口及其实现的特性,可以帮助我们在开发过程中做出更好的选择。

智通全网络工作室的博客 2099

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

java集合类_Java集合类详解

Collection├List│├LinkedList│├ArrayList│└Vector│ └Stack└SetMap├Hashtable├HashMap└WeakHashMapCollection接口Collection是最基本的集合接口,一个Collection代表一组Object,即Collection的元素(Elements)。Java SDK不提供直接继承自Collection的类,...

weixin_39955953的博客 214

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

java 常用集合类总结

在平常的代码开发中,集合类是经常会使用到的,比如用于列表缓存的ArrayList,用于做映射关系的Map等等 最近重点看了下java集合类的层次继承关系和内部存储结构,做个总结以便后面可以随时翻翻。        java中的集合,不管是List,Set,还是Map,都是继承自collection接口,这个接口主要定义了集合类的一些公关方法,比如isEmpty(), remove(),

peterzhihua的博客 4442

Java集合类

1 前言 Java实用类库中提供一套相当完整的容器类来保存数据对象,其中基本类型有List、Set、Queue和Map;这些对象类型也称为集合类; 对于每种集合类都有自身一些特性;如:Set对于每个值都只保存一个对象;Map是允许你将某些对象与其他一些对象关联起来的关联数组,Java容器类都可以自动调整自己的尺寸; 2 基本概念 Java容器类类库的用途是“保存对象”,并将其划分为两个

worthliu的博客 424

Java集合类面试题

参考答案它基于hash算法,通过put方法和get方法存储和获取对象。存储对象时,我们将K/V传给put方法时,它调用K的hashCode计算hash从而得到bucket位置,进一步存储,HashMap会根据当前bucket的占用情况自动调整容量(超过Load Facotr则resize为原来的2倍)。获取对象时,我们将K传给get,它调用hashCode计算hash从而得到bucket位置,并进一步调用 equals()方法确定键值对。

qq_45270148的博客 1363

Java集合类的总结

Java的集合类(Collection Classes)是Java Collections Framework的一部分,提供了一套数据结构和算法,用于存储和操作一组对象。是单例集合的顶层接口,它表示一组对象,这些对象也称为Collection的元素。JDK 不提供此接口的任何直接实现,它提供更具体的子接口(如Set和List)实现。List集合的概述有序集合,这里的有序指的是存取顺序用户可以精确控制列表中每个元素的插入位置,用户可以通过整数索引访问元素,并搜索列表中的元素。

m0_58866615的博客 1395

Java 集合类详解

通过本篇技术博客的介绍,我们了解了 Java 语言中常用的集合类的概念、分类、使用方法和最佳实践。在实际开发中,集合类是非常重要的数据结构,熟练掌握集合类的使用方法和最佳实践能够提高程序的性能和可读性,推荐大家多加练习和实践。

hj1993的博客 1842

Java中集合类的详解

Java中集合类的详解 1、集合的概述 2、集合的结构图 3、集合的分类 3.1、Collection集合 3.1.1、List接口 3.1.2、Set接口 3.2、Map集合 3.2.1、HashMap类 3.2.2、Hashtable类 3.3.3、TreeMap类

friend_X的博客 408

Java集合类的概述

前述   复习一下Java中的集合类,是面试笔试中常考察的一个点,特地做的整理。 什么是集合类?   集合类,也叫容器类。Java集合类可以用来存储数量庞大的对象。   我们和数组进行对比:   数组:存储基本数据类型,数据类型单一,长度固定,不能动态增大容量。   集合:存储的即可是基本类型的值,也可以是对象,可以存储多种数据类型,长度可变,可以动态增大容量。 Ja...

weixin_30420305的博客 227

初步认识Java的集合类

1.什么是Java的集合类? "集合类",顾名思义,就是说用于"把一些东西集合起来的"类.当然这只是最粗浅的认识.java集合类主要负责保存盛装其他数据.因此集合类也称容器类.这个时候很容易让人联想到"数组".集合类和数组的使用有一些重叠的地方,但是集合类能实现更多更强大的的功能,使用方法也更方便快捷! 2.Java都有那些集合类 Java的集合类就像武侠小说里的昆仑派,宗门众多,弟子无量.

Atommmm的博客 581

一文搞定Java集合类,你还在为Java集合类而烦恼吗?

常用集合类

轻松玩编程 1189

Java的集合类介绍

关于面试刷题也是有方法可言的,建议最好是按照专题来进行,然后由基础到高级,由浅入深来,效果会更好。Java基础部分算法与编程数据库部分流行的框架与新技术(Spring+SpringCloud+SpringCloudAlibaba)这份面试文档当然不止这些内容,实际上像JVM、设计模式、ZK、MQ、数据结构等其他部分的面试内容均有涉及,因为文章篇幅,就不全部在这里阐述了。

2401_83817916的博客 1010
上一篇: 多线程技术
下一篇: Java-IO
fyldragonfyl
博客等级 码龄12年 9粉丝 68原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值