快速了解Java集合框架

1. 简介

JDK1.2 引入了 Java 集合框架,包含一组数据结构。与数组不同,这些数据结构的存储空间会随着元素添加动态增加。其中,一些支持添加重复元素另一些不支持,一些支持 null,一些能自动升序打印元素。

所有这些数据结构在 java.util 包里,包含了 Collection、List、Set、Map、SortedMap 接口。这些接口的实现类有 LinkedList、TreeSet、ArrayList、HashMap 等。除了这些数据结构,java.util 包还提供了 Date、GregorianCalender、StringTokenizer、Random 这样的工具类。

2. 分类

可以按照接口、实现、算法三个方面对集合框架中的数据结构进行分类:

  • 接口:Collection、List、Map 组成了集合框架中所有具体实现类的接口,它们定义了子类必须实现的方法,非常好记。比如向集合添加元素,会用到 Collection 中定义的 add() 方法
  • 实现:所有实现了上述3个接口的类,都被称作集合框架,实际上就是数据结构。比如 LinkedList、TreeSet 等
  • 算法:集合框架提供了很多可以直接调用的算法,比如求最大最小值、排序、填充等

3. 优缺点

有以下4个优点

  • 减少工作量的同时增加了软件的可用性:不需要每个程序员动手实现排序、查找、找出元素在数据结构中出现的次数
  • 执行速度更快更持久:集合框架的底层数据结构分为两类,基于节点的和基于数组的,前者在频繁添加时效率更高,后者在频繁读取时速度更快。一些数据结构是 synchronized 线程安全的,但会影响速度有,另一些则不是线程安全的。程序员在选用数据结构前要清楚地了解这些因素
  • 互操作与转换:由于实现了 Collection 接口,数据结构之间是可以相互转换的。可以 clone,可以把现有的结构转成 synchronized 版本,还可以在把基于链表的数据结构转为基于数组的结构

有以下2个缺点

  • 当心类型转换:在集合框架类之间进行转换时要大大地小心,尤其要考虑泛型类型的兼容性
  • 运行时类型检查:集合框架在运行时会抛出异常,需要编程时多加注意

4. 继承体系

java.util 中的数据结构继承体系分为两大类,一类实现了 Collection 接口,一类实现了 Map 接口。

Collection 继承体系

为了让学习变得轻松、高效,今天给大家免费分享一套Java入门教学资源。帮助大家在成为Java架构师的道路上披荆斩棘。需要资料的欢迎加入学习交流群:9285,05736

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

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

相关文章

偷用计算机作文,偷玩电脑作文5篇

偷玩电脑作文5篇篇一:偷玩电脑的滋味星期天,我在家里看电视,妈妈很晚才回来,我只好在家等,看了一会,电视节目没了,我把电视关掉,看了会书消磨时间,我又写了会作业&#x…

钢铁厂计算机相关岗位需要倒班吗,钢铁厂工人倒班的三个阶段,请对号入座!...

原标题:钢铁厂工人倒班的三个阶段,请对号入座!刚开始钢铁厂倒班工作,感觉倒班好,夜班有啥,通宵可以感受夜的宁静,深夜闲暇之余还可以仰望星空,思考人生,白天自由时间多&a…

计算机文化基础B卷期末,《计算机文化基础》上机试卷B

课程代码: 座位号:新疆大学2008- 2009 学年度第一学期期末考试《计算机文化基础》上机试卷姓名: 学号: 专业:学院: 班级:2008年 12月注意事项:在试卷上必须注明学号、姓名否则成绩以“零”分计算完成以下各题后,将应用程序窗口最小…

win7查看 本地计算机策略,win7系统本地组策略编辑器打不开怎么办

本地组策略编辑器是win7系统的管理控制台,通过本地组策略编辑器可以禁止通过本地组策略、禁止对某些任务使用脚本等设置。有些win7 64位系统的用户发现,本地组组策略编辑器打不开了,这是怎么回事呢?会出现这种情况很有可能是控制台…

计算机打字测速,电脑的打字测速软件分享

对于电脑工作人员来说,打字是我们每天都会接触的,作为网站编辑来说,每天就是打字,打字,打字,因此,打字速度一定不能慢,不然就会大大的影响工作效率。下面是学习啦小编为大家整理的关…

2012服务器系统安装iis,Windows Server 2012服务器管理系统安装配置IIS8.5教程

IIS8.0是windows Server2012自带的服务器管理系统,和以往不同,IIS8.0安装和操作都比较简单,界面很简洁,安装也很迅速。今天我们重点完整的演示下windows server 2012上面配置IIS8.5的详细安装。windows server 2012上面配置IIS8.5…

Java9个异常处理的最佳实践

在本文中,作者介绍了9个处理异常的最佳方法与实践,以举例与代码展示结合的方式,让开发者更好的理解这9种方式,并指导读者在不同情况下选择不同的异常处理方式。 以下为译文: Java中的异常处理不是一个简单的话题。初学…

小白零基础怎么学习Java?不要慌

近年来,Java视频逐渐取代了“书籍”的作用,许多初学者已经将视频视为最重要的学习方式。然而,通过对java自学的长期观察和研究,我们发现书籍和视频都有自己的作用。阅读和观看视频对于Java学习者来说是不可或缺的。但是&#xff0…

服务器的虚拟内存怎么调,服务器的虚拟内存怎么调才好

服务器的虚拟内存怎么调才好 内容精选换一换华为云帮助中心,为用户提供产品简介、价格说明、购买指南、用户指南、API参考、最佳实践、常见问题、视频帮助等技术文档,帮助您快速上手使用华为云服务。开启弹性云服务器的虚拟内存后,会导致硬盘…

Java小白零基础学习如何突破自己的方法

有很多Java程序员在学习之初经常对如何学习感到困惑。本文将分析如何学习Java编程,并相信它可以帮助处于混乱状态的初学者。 I.培养兴趣 兴趣是可以让你继续前进的动力。如果你只是把这个程序写成谋生手段,那么你将会非常疲惫,更关心这个行…

修改epo服务器 gps,epo

EPO是促红细胞生成素(Erythropoietin)的英文简称。人体中的促红细胞生成素是由肾皮质肾小管周围间质细胞和肝脏分泌的一种激素样物质,能够促进红细胞生成。服用促红细胞生成素可以使患肾病贫血的病人增加血流比溶度(即增加血液中红细胞百分比)。人体缺氧时&#xff…

ug使用服务器系统,ug服务器设置教程视频

ug服务器设置教程视频 内容精选换一换本教程旨在演示使用GDS(General Data Service)工具将远端服务器上的数据导入GaussDB(DWS)中的办法,帮助您学习如何通过GDS进行数据导入的方法。在本教程中,您将:生成本教程需要使用的CSV格式的数据源文件…

目前Java编程语言最流行的7个框架,你了解多少?

小编有看到过很多文章写Java快要被取代了,但到目前为止Java软件开发也一直坚持主导地位。毫无疑问,Java是目前最流行的编程语言之一,小编今天总结了2018年流行的框架,相信2019年也不会让我们失望。 1,SpringMVC 在中国…

小白零基础学习Java开发入门教程奉上,希望对你有所帮助!

“持久和新”是编程语言方面对Java的适当评估。 想要进入互联网行业,想转向编程,Java无疑是一个非常普遍的选择。 但是,Java毕竟是一种编程语言,并且仍然存在一些技术障碍。如果你想开始,有一些困难,特别…

JAVA构架之并发编程的一些总结

所谓并发编程是指在一台处理器上"同时"处理多个任务。并发是在同一实体上的多个事件。多个事件在同一时间间隔发生。 一、程序与进程 程序是一组有序指令的集合,是一种静态的概念。进程是程序的一次执行,属于一种动态的概念。在多道程序环境…

Java技术学习心得

1. 学习之路,不走弯路,就是捷径 软件开发之路是充满荆棘与挑战之路,也是充满希望之路。Java学习也是如此,没有捷径可走。所有的人都期盼成功,但是并不是每个人都会为走向 成功全力以赴。人们在渴望成功的同时,也渴望能…

做到年薪50W是如何学习Java架构技术的?

工作年时间长,经验比较丰富 他们的共同特点是:10 年以上的工作经验,在大公司当过螺丝钉,也在创业公司做过技术 leader,有过一两段不算成功的创业经历。 这样的程序员无论是去 BAT 还是去创业公司,都能拿到…

Java程序员该如何学习才能成长为一名优秀的架构师

Java架构师,首先要是一个Java程序员,熟练掌握使用各种框架,并知道它们实现的原理,Java虚拟机原理、调优,懂得JVM能让你写出性能更好的代码,池技术,什么对象池,怎么解决并发量、连接池…

java程序员应该掌握的技术才算得上熟练Java开发

1.语法:Java程序员必须熟悉语法。编写代码时,IDE编辑器应该能够根据错误消息报告行错误,并知道什么样的语法错误并知道任何更正。 2,命令:必须熟悉JDK带来的一些常用命令和常用选项,该命令至少需要熟悉&am…

2019年Java初级和高级部分的技术面试

事实上,并不是我故意想成为一个困难的候选人。毕竟,在我加入这份工作后,我是一名同事,但面试官的角色是,如果高级面试官一般都是一样的话。 如果你在这里写,我担心一些想面试的朋友会害怕。如果他们有很强…