12章总结

一.集合类概述
        java.util包中提供了一些集合类,这些集合类又被称为容器。

集合类与数组的不同之处:
        数组的长度是固定的,集合的长度是可变的:数组用来存放基本类型的数据,集合用来存放对象的引用。

        常用的集合有List集合、Set集合和Map集合,其中List集合与Set集合继承了Collection接口,各接口还提供了不同的实现类。

二.Collection接口
        Collection接口是层次结构中的根接口,构成Collection的单位称为元素。

        Collection接口通常不能直接使用,但该接口提供了添加元素、删除元素、管理数据的方法。由于List接口与Set接口都继承了Collection接口,因此这些方法对List集合与Set集合是通用的。

如何遍历集合中的每个元素?

        通常遍历集合,都是通过迭代器(Iterator)来实现。Collection接口中的iterator()方法可返回在此Collection进行迭代的迭代器

迭代:重复执行某一行为。

【例12.1】向“购物车”添加商品

代码:

 结果:

三.List集合
        List集合包括List接口以及List接口的所有实现类。

        List集合中的元素允许重复,各元素的顺序就是对象插入的顺序。类似Java数组,用户可以通过使用索引(元素在集合中的位置)来访问集合中的元素。

     

        1.List接口
        LIst接口继承了Collection接口,因此包含Collection接口中的所有方法。此外,List接口还定义了两个非常重要的方法:
 

(1)get(int index):获得指定索引位置的元素。(2)set(int index,Object obj):将集合中指定索引位置的对象修改为指定的对象。

2.List接口的实现类 
        List接口的常用实现类有ArrayList类与LinkedList类:

(1)ArrayList类实现了可变的数组,允许保存所有元素,包括null,并可以根据索引位置对集合进行快速的随机访问。缺点是向指定的索引位置插入对象或删除对象的速度较慢。

(2)LinkList类采用链表结构保存对象。这种结构的优点是便于向集合中插入和删除对象。需要向集合中插入、删除对象时,使用LinkedList类实现的List集合的效率较高;但对于随机访问集合中的对象,使用LinkedList类实现List集合的效率较低。

        

        使用List集合时通常声明为List类型,可通过不同的实现类来实例化集合。通过ArrayList类、

LinkedList类分别实例化List集合的代码如下:

List<E>list=new ArrayList<>();
List<E>list2=new LinkedList<>();

在上面的代码中,E可以是合法的Java数据类型。

        List接口的常用方法:

添加:add()

获取:get()

删除:remove()

更改:set()

【例12.2】举例说明List集合的常用方法

代码:

结果:

 

四.Set集合
        Set集合中的对象不按特定的方式排序,只是简单地把对象加入集合中,但Set集合中不能包含重复对象。

        Set集合由Set接口和Set接口的实现类组成。Set接口继承了Collection接口,因此包含Collction接口的所有方法。

Set接口常用的实现类有HashSet类与TreeSet类:

(1)HashSet类实现Set接口,由哈希表(实际上是一个HashMap实例)支持。它不保证Set集合的迭代顺序,特别是它不保证该顺序恒久不变。此类允许使用null元素。

(2)TreeSet类不仅实现了Set接口,还实现了java.util.SortedSet接口,因此TreeSet类实现的Set集合在遍历集合时按照自然顺序递增排序,也可以按照指定比较器递增排序,即可以通过比较器对用TreeSet类实现的Set集合中的对象进行排序。

【例12.3】使用TreeSet类实现自然(升序)排序

代码:

 结果:

 

五.Map集合
        Map集合没有继承Collection接口,其提供的是key到value的映射。Map集合中不能包含相同的key,每个key只能映射一个value。key还决定了存储对象在映射中的存储位置,但不是由key对象本身决定的,而是通过一种“散列技术”进行处理,产生一个散列码的整数值。

        Map集合包括Map接口以及Map接口的所有实现类。


        1.Map接口
        Map接口提供了将key映射到值的对象。一个映射不能包含重复的key,每个key最多只能映射到一个值
————————————————
版权声明:本文为CSDN博主「OYFYO」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/OYFYO/article/details/132836377

五.Map集合
        Map集合没有继承Collection接口,其提供的是key到value的映射。Map集合中不能包含相同的key,每个key只能映射一个value。key还决定了存储对象在映射中的存储位置,但不是由key对象本身决定的,而是通过一种“散列技术”进行处理,产生一个散列码的整数值。

        Map集合包括Map接口以及Map接口的所有实现类。


        1.Map接口
        Map接口提供了将key映射到值的对象。一个映射不能包含重复的key,每个key最多只能映射到一个值.

2.Map接口的实现类
        Map接口常用的实现类有HashMap类和TreeMap类:

(1)HashMap类是基于哈希表的Map接口的实现,此实现提供所有可选的映射操作,并允许使用null值和null键,但必须保证键的唯一性。HashMap类通过哈希表对其内部的映射关系进行快速查找。此类不保证映射的顺序,特别是它不保证该顺序恒久不变。

(2)TreeMap类不仅实现了Map接口,还实现了java.util.SortedMap接口,因此集合中的映射关系具有一定的顺序。但在添加、删除和定位映射关系时,TreeMap类比HashMap类性能稍差。由于TreeMap类实现的Map集合中的映射关系是根据键对象按照一定的顺序排列的,因此不允许键对象是null。

【例12.4】输出Map集合中书号(键)和书名(值)
代码:

结果:

 

改进使输出一一对应:

代码:

 结果:

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

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

相关文章

怎么知道跟交换机互联的交换机_怎么选择POE交换机

工作的呢&#xff1f;48V供电的就是标准PoE吗&#xff1f;下面我们简单讲解一下标准PoE和MCU PoE交换机&#xff08;单片机&#xff09;及非标PoE设备是怎么工作的。标准PoE和MCU PoE交换机&#xff08;单片机&#xff09;以及非标准PoE产品定义首先我们来看一下什么是标准PoE、…

在excel中如何筛选重复数据_Excel中12招筛选使用大全,小白也能秒变高手

【温馨提示】亲爱的朋友&#xff0c;阅读之前请您点击【关注】&#xff0c;您的支持将是我最大的动力&#xff01;在日常使用Excel处理数据时&#xff0c;相信小伙伴们对于筛选功能已经是不陌生了&#xff0c;Excel筛选功能可以快速有效的帮助我们处理大量的数据&#xff0c;将…

cli命令行界面 demo_Java命令行界面(第24部分):MarkUtils-CLI

cli命令行界面 demo本系列的第一篇 有关使用Java解析命令行参数的文章介绍了Apache Commons CLI库。 这是本系列中介绍的基于Java的命令行解析库中最古老的&#xff0c;而且可能是最常用的之一。 Apache Commons CLI确实显示了它的时代&#xff0c;特别是与一些更现代的基于Jav…

python打包成exe_【Python基础】一篇文件教你py文件打包成exe

场景:如果要将我们编写好的代码给别人使用,如果要他们直接使用我们的代码,就需要安装各种编译软件以及第三方模块,还要对软件操作,编程有一定的了解,这对使用者的要求比较高,不是很方便,为了解决这一问题,我们可以选择将我们编写的代码,编译成一个可执行文件,这样,就可以实现跨…

cad图标注释大全_CAD源泉插件快捷键使用教程(全集)

点击直达全集教程地址​www.bilibili.com此插件和海龙工具箱功能相似&#xff01;不建议同时安装&#xff0c;快捷命令冲突。插件工具箱 图文介绍平面空间布置 jj这个命令把我们常规用到的家装空间都已经用上了&#xff0c;除了切换不同空间布置格局&#xff0c;而且图块的样式…

苹果录屏功能没有声音_其实苹果手机也有录屏功能!简单操作几步,就能轻松开启...

现在手机中的娱乐方式越来越多了&#xff0c;大家遇到有趣的事情就想分享给朋友&#xff0c;但是一些视频不能直接分享链接&#xff0c;还是挺麻烦的。不过我们可以通过录屏的方式来进行分享的&#xff0c;其实苹果手机就自带录屏工具&#xff0c;简单操作几步&#xff0c;就能…

natty的异步通信框架_OpenHub框架进行的异步通信

natty的异步通信框架在本系列的前一部分中&#xff0c;我们介绍了OpenHub框架 。 这部分显示了框架最强大的功能之一- 异步消息传递模型 。 当源系统无法等待目标系统的响应时&#xff0c;将使用系统之间的异步通信。 有以下几个原因&#xff1a; 源系统必须尽可能地响应 &am…

java大文件解析_java大文件(百M以上)的上传下载实例解析

javaweb上传文件上传文件的jsp中的部分上传文件同样可以使用form表单向后端发请求&#xff0c;也可以使用 ajax向后端发请求1.通过form表单向后端发送请求Save改进后的代码不需要form标签&#xff0c;直接由控件来实现。开发人员只需要关注业务逻辑即可。JS中已经帮我们封闭好了…

zip直链生成网站_安装网站程序

一、选择网站程序搭建网站的程序有很多博客类&#xff1a; WordPress、 Typecho 、Hexo 等商城类&#xff1a;EcShop、DBShop、NiuShop 等论坛类&#xff1a;Discuz 还有 苹果CMS-影视建站&#xff1b;Tipask-问答程序&#xff1b;可道云KodExplorer-强大易用的私有云/在线文档…

mega x_[MEGA DEAL]通过Hadoop Bundle掌握大数据(91%的折扣)

mega x通过44个小时的广泛Hadoop培训来驯服海量数据集 嘿&#xff0c;怪胎&#xff0c; 本周&#xff0c;在我们的JCG Deals商店中 &#xff0c;我们提供了另一个超值优惠 。 通过Hadoop Bundle&#xff0c;我们可以提供91&#xff05;的 大数据精通 折扣 。 现在只需39美元…

c++ 提取傅里叶描述子_AI大语音(四)——MFCC特征提取(深度解析)

1 特征提取流程在语音识别和话者识别方面&#xff0c;最常用到的语音特征就是梅尔倒谱系数&#xff08;Mel-scaleFrequency Cepstral Coefficients&#xff0c;简称MFCC&#xff09;。MFCC提取过程包括预处理、快速傅里叶变换、Mei滤波器组、对数运算、离散余弦变换、动态特征提…

Linux 命令之 grep -- 强大的文本搜索工具/正则表达式搜索

文章目录一、命令介绍二、grep 的三种形式三、常用选项四、正则表达式五、参考示例在指定的文件中查找指定的关键词查看指定文件中含有特定关键词的文本行查看指定文件中所有包含数字的行在指定的目录下递归搜索指定的字符串&#xff0c;将符合的文本行及其文件名输出在指定文件…

java me基础教程 pdf_Java ME手机应用开发技术与案例详解 PDF

资源名称&#xff1a;Java ME手机应用开发技术与案例详解 PDFJava ME手机应用开发技术与案例详解基于Java ME&#xff0c;系统描述了Java ME手机应用开发的各个方面。全书按照Java ME程序的开发流程合理编排内容&#xff0c;分成3个部分依次讲述。第1部分包括第1章-第5章&#…

cli parser_Java命令行界面(第27部分):cli-parser

cli parserCLI Parser最初托管在Google Code上&#xff0c;现在已存档在Google Code上 &#xff0c;现在可以在GitHub上使用 。 Google Code项目档案页面将CLI Parser描述为“使用非常简单&#xff0c;非常小的依赖项”&#xff0c;它使用注释“使非常简洁的主要方法不需要知道…

写一个sql实现以下查询结果_书写高质量SQL的30条建议

以下文章来源&#xff1a;后端程序员必备&#xff1a;书写高质量SQL的30条建议1、查询SQL尽量不要使用select *&#xff0c;而是select具体字段。反例子&#xff1a;select * from employee;正例子&#xff1a;select id&#xff0c;name from employee;理由&#xff1a;只取需…

sendkeys.send 始终输出英文._PLC的三种输出方式,你知道有哪些吗?

电工技术维修学习网&#xff1a;www.dgjswx.com关注电工技术维修学习网官方微信公众号《电工维修学习》收获更多电工经验知识和提升实战技能电工技术&#xff0c;电气知识&#xff0c;电工基础知识&#xff0c;电工入门知识&#xff0c;电工资料&#xff0c;电工软件&#xff0…

java 死循环排查_java应用死循环排查方法或查找程序消耗资源的线程方法(面试)...

今天遇到一个面试&#xff0c;怎么在一堆线程中查找一个死循环&#xff1f;如果遇到线上应用cpu飙升&#xff0c;并出现OutOfMemery怎么办&#xff1f;首先线上应用的jvm配置要养成良好的习惯&#xff0c;增加一下配置则可以在jvm发生 oom的时候自动dump日志了 -XX:HeapDumpOn…

jw摄像_Java命令行界面(第17部分):jw-options

jw摄像JavaWorld的文章“ 用Java处理命令行参数”&#xff1a; Matthias Laux博士关闭的案例介绍了一个简单的基于Java的库&#xff0c;用于处理命令行参数 &#xff0c;我在本文中将其称为jw-options 。 被引用的文章提供了有关为何在构造Options类时做出某些设计决策的背景信…

pixel和毫米怎么换算_压力传感器相关压力单位换算

压力传感器的应用已经很普遍了&#xff0c;压力传感器各个单间之间应该怎么换算呢&#xff0c;这个问题困扰着很多的客户&#xff0c;今天呢我们就来说一下它们之间的换算。在实际的工程应用中&#xff0c;压强单位常被当作压力单位。比较常见的压力单位包括&#xff1a;bar、K…

mongodb json_在MongoDB和Spring Batch中将XML转换为JSON和原始使用

mongodb json总览 为什么将XML转换为JSON以在MongoDB中原始使用&#xff1f; 由于MongoDB使用JSON文档存储记录&#xff0c;就像表和行将记录存储在关系数据库中一样&#xff0c;我们自然需要将XML转换为JSON。 某些应用程序可能需要存储原始&#xff08;未修改的&#xff09;…