List , Map . Set 类

Map、List、Set 分别说下线程安全类和线程不安全的类 2. 线程不安全的类:HashMap HashMap 是 Java 提供的一个非线程安全的 HashMap 实现类。总结 本文介绍了 Map、List、Set 三个集合类型的线程安全类和线程不安全的类,并给出了示例代码。Map、List、Set 是 Java 中非常常用的集合类,它们在多线程环境下有各自的线程安全类和线程不安全的类。本文将分别介绍这三个集合类型的线程安全类和线程不安全的类,并举例说明。 阅读详情

Collection 接口 使具备一般的集合的功能.

Collections类 是实现了 Collection接口的类.

接口 Iterable 是迭代器的接口. 实现这个接口允许对象成为 "foreach" 语句的目标。

接口 List ,可以指定在一定的位置插入元素.

接口 Map, 插入键值对.可以得到 键集、值集合或键-值映射关系集的Collections.

接口 Set ,大约像一个集合,不可以有重复元素的.

 

http://www.enet.com.cn/article/2005/1223/A20051223485993.shtml

 

  容器类可以大大提高编程效率和编程能力,在Java2中,所有的容器都由SUN公司的Joshua Bloch进行了重新设计,丰富了容器类库的功能。

  Java2容器类类库的用途是“保存对象”,它分为两类:

  Collection----一组独立的元素,通常这些元素都服从某种规则。List必须保持元素特定的顺序,而Set不能有重复元素。

  Map----一组成对的“键值对”对象,即其元素是成对的对象,最典型的应用就是数据字典,并且还有其它广泛的应用。另外,Map可以返回其所有键组成的Set和其所有值组成的Collection,或其键值对组成的Set,并且还可以像数组一样扩展多维Map,只要让Map中键值对的每个“值”是一个Map即可。

  1.迭代器

  迭代器是一种设计模式,它是一个对象,它可以遍历并选择序列中的对象,而开发人员不需要了解该序列的底层结构。迭代器通常被称为“轻量级”对象,因为创建它的代价小。

  Java中的Iterator功能比较简单,并且只能单向移动:

  (1) 使用方法iterator()要求容器返回一个Iterator。第一次调用Iterator的next()方法时,它返回序列的第一个元素。

  (2) 使用next()获得序列中的下一个元素。

  (3) 使用hasNext()检查序列中是否还有元素。

  (4) 使用remove()将迭代器新返回的元素删除。

  Iterator是Java迭代器最简单的实现,为List设计的ListIterator具有更多的功能,它可以从两个方向遍历List,也可以从List中插入和删除元素。

  2.List的功能方法

  List(interface): 次序是List最重要的特点;它确保维护元素特定的顺序。List为Collection添加了许多方法,使得能够向List中间插入与移除元素(只推荐LinkedList使用)。一个List可以生成ListIterator,使用它可以从两个方向遍历List,也可以从List中间插入和删除元素。


 ArrayList: 由数组实现的List。它允许对元素进行快速随机访问,但是向List中间插入与移除元素的速度很慢。ListIterator只应该用来由后向前遍历ArrayList,而不是用来插入和删除元素,因为这比LinkedList开销要大很多。

  LinkedList: 对顺序访问进行了优化,向List中间插入与删除得开销不大,随机访问则相对较慢(可用ArrayList代替)。它具有方法addFirst()、addLast()、getFirst()、getLast()、removeFirst()、removeLast(),这些方法(没有在任何接口或基类中定义过)使得LinkedList可以当作堆栈、队列和双向队列使用。

  3.Set的功能方法

  Set(interface): 存入Set的每个元素必须是唯一的,因为Set不保存重复元素。加入Set的Object必须定义equals()方法以确保对象的唯一性。Set与Collection有完全一样的接口。Set接口不保证维护元素的次序。

  HashSet: 为快速查找而设计的Set。存入HashSet的对象必须定义hashCode()。

  TreeSet: 保持次序的Set,底层为树结构。使用它可以从Set中提取有序的序列。

  LinkedHashSet: 具有HashSet的查询速度,且内部使用链表维护元素的顺序(插入的次序)。于是在使用迭代器遍历Set时,结果会按元素插入的次序显示。

  HashSet采用散列函数对元素进行排序,这是专门为快速查询而设计的;TreeSet采用红黑树的数据结构进行排序元素;LinkedHashSet内部使用散列以加快查询速度,同时使用链表维护元素的次序,使得看起来元素是以插入的顺序保存的。需要注意的是,生成自己的类时,Set需要维护元素的存储顺序,因此要实现Comparable接口并定义compareTo()方法。

 

从VoLTE高清通话到5G新通话:手把手带你用Wireshark抓包分析QCI 1, 2, 5, 9的建立与切换过程 本文详细解析了从VoLTE高清通话到5G新通话的QCI(QoS Class Identifier)建立与切换过程,通过Wireshark抓包实战演示如何分析QCI 1、2、5、9的承载机制。内容涵盖QCI基础概念、实验环境搭建、VoLTE通话建立过程分析以及5G新通话中的QoS演进,为网络工程师和通信技术爱好者提供实用的技术指南和优化建议。 阅读详情

相关推荐

什么是PON(无源光纤网络)、PON的发展及演进

全球知名媒体Omdia在光纤和铜缆接入设备预测报告中对2022年2月的预测显示,PON设备端口收入预计在2020年至2027年期间以12.3%的年复合增长率增长,到2027年将达到163亿美元,远高于2020年的82亿美元。 此前,Omdia有份报告称,在3月份举行的美国OFC展会中,众多 CSP 正在顺利部署 XGS PON(10G 对称),其他 CSP 专注于基于 GPON 的低速 FTTH 服务。另外关于25G PON 和 50G PON 之间的争论仍在继续,而Omdia 认为 25G PON 和 5

4929

Java8中List的排序

1、基本类型的List集合的排序 public void testListSort() { List<Long> idList = new ArrayList<>(); idList.add(23L); idList.add(22L); idList.add(20L); idList.add(21L);

吖脖(博) 7993

从AND到XOR:5种门控电路在PrimeTime中的检查策略差异

本文深入探讨了AND、NAND、OR、NOR和XOR五种门控电路在PrimeTime静态时序分析中的检查策略差异。重点解析了XOR门控因其非单调性而无法被工具自动推断,需要工程师手动配置的特殊性,并提供了针对各类门控的配置模板与调试技巧,以确保时钟网络的完整性与芯片设计的可靠性。

rgv2345678的博客 269

两种Java容器类List和Set分析

两种Java容器类List和Set分析 作者: Java研究组织∣来源:IT世界java文章∣原文地址∣2006-1-8 容器类可以大大提高编程效率和编程能力,在Java2中,所有的容器都由SUN公司的Joshua Bloch进行了重新设计,丰富了容器类库的功能。   Java2容器类类库的用途是“保存对象”,它分为两类:   Collection----一组独立的元素,通常这些元素都服从某种

889

计组实验之四路表决器

请在之前四路表决器电路实现的基础上,继续用连接线 联接CD4511,将投票为1的票数总和显示到一个 LED上,思考如何做?由于我们需要通过显示字形来直接看出有几个1,在这里,我们最多有四个1,即显示字形最多到4就行,所以我们需要将有几个1用2进制数来表示,下面给出了相关电路图。显示输入插口,按真值表(自拟)要求,逐次改变输入变量, 测量相应的输出值,验证逻辑功能, 与表3-1 进行比较, 验证所设计的逻辑电路是否符合要求。用实验结果与真值表3-1和3-2进行比对,可以得出,我们实验结果是正确的。

szyugly的博客 1万+

Python实战:用jieba和WordCloud打造电商评论情感分析工具(附完整代码)

本文详细介绍了如何使用Python的jieba分词和WordCloud库构建电商评论情感分析工具,涵盖数据预处理、情感分析、可视化展示等关键步骤,并提供完整代码实现。通过该工具,开发者可以高效分析电商评论数据,挖掘消费者情感倾向,为产品改进和决策提供数据支持。

weixin_30316097的博客 414

List由大到小排序

private List orderByAsc(List scores){ for (int i = 0; i < scores.size() - 1; i++) { for (int j = 1; j < scores.size() - i; j++) { Long a; if ((sco

phantomes的专栏 7368

AMESim柱塞泵建模全指南:从HCD库搭建到联合仿真

液压系统仿真中,轴向柱塞泵的建模始终是难点与热点。柱塞泵结构紧凑、功率密度高,在工程机械与航空航天领域应用广泛,然而其运动学与流体细节深度耦合,给仿真带来不小挑战。AMESim平台中的HCD库提供了一种从物理结构出发的建模思路,将柱塞泵分解为容积腔、节流口与机械约束等基础单元,从而真实刻画柱塞腔压力波动、配流特性和容积效率等关键行为,摆脱黑盒模型的局限。基于机理建模的仿真结果,可用于泵参数优化、故障特征分析以及控制策略验证。进一步结合AMESim与Simulink联合仿真,可以高效开发变量泵排量控制系统,研

weixin_29159441的博客 289

list的排序

list的排序 1. 常用类型的排序 一般常用的类型有Integer,Long等包装类型,String,Date,Number类的继承类等。这些常用的类型中有一个共同点就是,都实现了Comparable接口,并且实现了他的compareTo()方法 一般常用类型的List的排序就很简单,就按照他的排序规则进行就可以了。 List<Integer> ints = new Arra...

程序猿小河 824

跟着团子学SAP CO:揭秘结果分析码在项目结算中的实战应用(一)KKA2/CJ88

本文深入解析了SAP CO模块中结果分析码在项目结算中的核心作用。以KKA2(方法10)和事务代码CJ88为例,详细阐述了如何在项目完工后一次性确认收入的场景下,通过结果分析功能实现收入与成本的精准匹配,将项目成本暂估为在制品,确保各期利润的准确反映。

gamma的博客 685

【基于 CasADi 的欠驱动无人船实时非线性模型预测控制(NMPC)实现 Visual Studio 2022 C++】

本文介绍了基于CasADi和IPOPT在Visual Studio 2022 C++环境下实现的欠驱动无人船实时非线性模型预测控制(NMPC)方案。文章详细阐述了NMPC基本原理、欠驱动无人船动力学模型(包含状态变量和控制变量定义),并给出了C++实现的核心代码框架。该方案通过显式引入系统动力学模型和约束条件,在每个采样周期滚动优化控制序列,有效解决了欠驱动无人船的轨迹跟踪与避碰问题。文中还提供了VS2022配置CasADi环境的详细步骤,包括预编译包下载、工程属性设置等关键环节,为工程实现提供了完整的技术

vor234的博客 651

使用Lambda表达式进行排序

【代码】使用Lambda表达式进行排序。

ignb6666的博客 572

自定义Usecase/Pipeline

Summary of Custom Usecase and Pipeline Configuration in SA8650 QCX Framework This article elaborates on the complete process of customizing a new Usecase and Pipeline based on the SA8650 QCX framework to meet OEM and Tier1 customization requirements, with

qq_39257814的博客 929

List,Set,Map常见类使用及其区别

List常见类及其区别 List是一个有序的集合接口。可以通过一个位置索引进行新增、删除、查找元素。注:它允许重复的元素 list中常见类:AbstractList,ArrayList,LinkedList,Vector 类关系:List>AbstractList>(ArrayList,LinkedList,Vector) AbstractList List接口的抽象实现类,它提供了L...

weixin_44129779的博客 298

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

Java复习五(List、Set、Map、String类、StringBuilder类、日期、日历类)

不变性:只要使用String赋值后,这个字符串会一直在内存中存在,因为它具有不变性,String 本身是一个不可变的字符数组;如果改变字符串的值,不是改变字符本身,而是重新创建或找到一个相同的字符串。特点:查询慢、增删快;通俗的理解为小学生的书包,直接把元素扔进去,是没有任何顺序的,所以元素不能重复。1.存储的元素是不可重复的,并且元素都是无序的(存和取的顺序不一致)无索引。集合存储的都是对象,不能存储基本数据类型,存储的是对应的包装类。通过使用平台的默认字符集解码指定的 byte 子数组,构造一个新的。

weixin_65824274的博客 411

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

List 的三个子类的特点 以及 List 和Map、Set 的区别

List 的三个子类的特点 ArrayList 底层结构是数组,底层查询快,增删慢。LinkedList 底层结构是链表型的,增删快,查询慢。voctor 底层结构是数组 线程安全的,增删慢,查询慢。 结构特点 List 和 Set 是存储单列数据的集合,Map 是存储键和值这样的双列数据的集合;List 中存储的数据是有顺序,并且允许重复;Map 中存储的数据是没有顺序的,其键是不能重复的,它的值是可以有重复的,Set 中存储的数据是无序的,且不允许有重复,但元素在集合中的位置由元素的 hashcode

weixin_40517799的博客 355

IMSL CNL 7.0.0 (x86-64)Crack

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

Kotlin学习笔记——(四)List、Set、Map、数组和类

注:编码工具为IntelliJ List 创建 List分为可变和不可变两种,之间可以相互转换。 fun main() { val intList = listOf(1, 2, 3) // 创建可变List val intMutableList = mutableListOf(1, 2, 3)// 创建不可变List println(intList) println(intMutableList) println(intList.toMuta...

miyuexingchen的专栏 845

Java数据结构Map List Set及Queue相关的类图

Java数据结构Map List Set及Queue相关的类图

fdyufgf的博客 325

List、Set、Map的区别、有关String类

List和Set是存储单列数据的集合,Map是存储键和值这样的双列数据的集合; List中存储的数据是有顺序,并且允许重复; Map中存储的数据是无序的,其键是不能重复的,但是值是可以重复的; Set中存储的数据是无序的,且不允许有重复,但元素在集合中的位置由元素的hashCode决定, 位置是固定的(Set 根据hashcode来进行数据的存储,所以位置是固定的,但是位置不是用户可以控制的,所以对于用户来说 set 中的元素还是无序的); 实现类:

m0_68758365的博客 467

Java常用工具类之集合List、Set、Map

Java常用工具类之集合 一、List 在Collection中,List集合是有序的,Developer可对其中每个元素的插入位置进行精确地控制,可以通过索引来访问元素,遍历元素。 在List集合中,我们常用到ArrayList和LinkedList这两个类。 0x1 ArrayList ArrayList底层通过数组实现,随着元素的增加而动态扩容。而LinkedList底...

慕白博客 1432

解释List、Set和Map的区别,以及实现List接口的类

二、ArrayList、LinkedList和Vector在Java中都是实现了List接口的类,但它们在内部实现、性能特点、线程安全性等方面存在一些显著的差异。是 Java 集合框架(Collections Framework)中的三个主要接口,它们分别代表了不同的数据结构。

m0_46552684的博客 1307

Java数据结构Map,List,Set及Queue相关的类图

 Java数据结构Map,List,Set及Queue相关的类图   闲来无事,把util包中相关的数据结构的类图及其关系画了一下,给大家分享一下。 总览图:    Map:    List and Set:    Queue: ...

z453588的博客 346

JAVA语言中List集合,Set集合,Map和String类的概念理解

JAVA语言中List集合,Set集合,Map和String类的概念理解

weixin_68768963的博客 1497

Java总结:包装类,栈与堆,集合Set,Map,List,迭代器,Collection工具类,IO操作

包装类 Java是一门面向对象的语言,一切皆对象,但是八大基本类型并不是对象 所以就有了包装类 基本类型 包装类 int Integer double Double float Float char Character byte Byte long Long short Sh...

蚂蚁 367

Map,List,Set类图

注意点:Map不实现Collection, Collections只是工具类。

天义的专栏 1118

Java集合 List、Set、Map UML类图关系

对Java中的集合类数据结构种类繁多,且他们之间的关系错综复杂, 于是对着JDK的源码,用UML图描述一下Java中各种List、Set和Map之间的关系。 对于类图的表示,下面这这个图展示了UML中、接口、继承、组合、聚合、依赖、关联之间的关系。 下面是List、Set和Map的UML类图关系 可以简单的总结一下: ArrayList, LinkedList和Vector都是List的子类, 他们都是有序的,这个有序指的是按照写入和读出顺序一致,这个需要和排序区分开来。 ArrayList和

深度理解是快乐的源泉 2796
上一篇: HashMap 与 Hashtable
下一篇: java 单例模式的实现
ap0406708
博客等级 码龄20年 4粉丝 62原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值