java集合系列——java集合概述(一)[通俗易懂]

在JDK中集合是很重要的,学习java那么一定要好好的去了解一下集合的源码以及一些集合实现的思想! 一:集合的UML类图(网上下载的图片) Java集合工具包位置是java.util.*二:集合工具的分析 1:Java集合是java提供的工具包,常用的数据结构:集合、链表、队列、栈、数组、映射等 2:java集合主要划分为五个部分: List列表、Set集合、Map映射、迭代器(It

大家好,又见面了,我是全栈君。

在JDK中集合是很重要的,学习java那么一定要好好的去了解一下集合的源码以及一些集合实现的思想!
一:集合的UML类图(网上下载的图片)

Java集合工具包位置是java.util.*

这里写图片描述

这里写图片描述

二:集合工具的分析
1:Java集合是java提供的工具包,常用的数据结构:集合、链表、队列、栈、数组、映射等
2:java集合主要划分为五个部分:

List列表、Set集合、Map映射、迭代器(Iterator、Enumeration)、工具类(Arrays、Collections)

3:根据类图进行分析:
主要分为两大类:CollectionMap
1:Collection是一个接口,是高度抽象出来的集合,它包含了集合的基本操作和属性。

包括了List和Set

  • List:List接口通常表示一个列表(数组、队列、链表、栈等),其中的元素可以重复,常用实现类为ArrayList和LinkedList,另外还有不常用的Vector。另外,LinkedList还是实现了Queue接口,因此也可以作为队列使用。

    List是一个有序的队列,每一个元素都有它的索引。第一个元素的索引值是0。

  • Set: Set接口通常表示一个集合,其中的元素不允许重复(通过hashcode和equals函数保证),常用实现类有HashSet和TreeSet,HashSet是通过Map中的HashMap实现的,而TreeSet是通过Map中的TreeMap实现的。另外,TreeSet还实现了SortedSet接口,因此是有序的集合(集合中的元素要实现Comparable接口,并覆写Compartor函数才行)。

    Set是一个不允许有重复元素的集合。

2:Map是一个映射接口,即key-value键值对。一个key对应一个value。

Map是一个映射接口,其中的每个元素都是一个key-value键值对,同样抽象类AbstractMap通过适配器模式实现了Map接口中的大部分函数,TreeMap、HashMap、WeakHashMap等实现类都通过继承AbstractMap来实现,另外,不常用的HashTable直接实现了Map接口,它和Vector都是JDK1.0就引入的集合类。

3:Iterator,它是遍历集合的工具,即我们通常通过Iterator迭代器来遍历集合。不能遍历Map,只用来遍历Collection。
Collection的实现类都实现了iterator()函数,它返回一个Iterator对象,用来遍历集合,ListIterator则专门用来遍历List

4:Enumeration,它是JDK 1.0引入的抽象类。作用和Iterator一样,也是遍历集合;但它的功能比Iterator要少,它只能再Hashtable、Vector和Stack中使用。

5:Arrays和Collections。它们是操作数组、集合的两个工具类。

三:用的设计模式

Java集合框架中用的很多的适配器设计模式

四:菜鸟集合讲解:http://www.runoob.com/java/java-collections.html


java集合系列——java集合概述(一)
java集合系列——List集合之ArrayList介绍(二)
java集合系列——List集合之LinkedList介绍(三)
java集合系列——List集合之Vector介绍(四)
java集合系列——List集合之Stack介绍(五)
java集合系列——List集合总结(六)
java集合系列——Map介绍(七)
java集合系列——Map之HashMap介绍(八)
java集合系列——Map之TreeMap介绍(九)
java集合系列——Set之HashSet和TreeSet介绍(十)



如果帅气(美丽)、睿智(聪颖),和我一样简单善良的你看到本篇博文中存在问题,请指出,我虚心接受你让我成长的批评,谢谢阅读!
祝你今天开心愉快!


欢迎访问我的csdn博客,我们一同成长!

不管做什么,只要坚持下去就会看到不一样!在路上,不卑不亢!

博客首页http://blog.csdn.net/u010648555

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/121188.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • 特殊多位数乘法口算算法

    特殊多位数乘法口算算法本文转自:我爱口算网,但是本人有一定更正,因此转载请注明出处一、关于9的数学口算技巧(两位数乘法)关于9的口诀:1×9=9  2×9=18  3×9=27    4×9=365×9=45  6×9=54  7×9=63    8×9=729×9=81上面的口诀小朋友们已经会了吗?小学

  • 语义分割(Semantic Segmentation)方法「建议收藏」

    语义分割(Semantic Segmentation)方法「建议收藏」翻译来自:https://gist.github.com/khanhnamle1994/e2ff59ddca93c0205ac4e566d40b5e88语义分割方面的资源:https://github.com/mrgloom/awesome-semantic-segmentation1.什么是语义分割语义分割是当今计算机视觉领域的关键问题之一。从宏观上看,语义分割是一项高层次的任务,…

  • mybatis 缓存的使用, 看这篇就够了「建议收藏」

    mybatis 缓存的使用, 看这篇就够了「建议收藏」缓存的重要性是不言而喻的。使用缓存,我们可以避免频繁的与数据库进行交互,尤其是在查询越多、缓存命中率越高的情况下,使用缓存对性能的提高更明显。mybatis也提供了对缓存的支持,分为一级缓存和二级缓存。但是在默认的情况下,只开启一级缓存(一级缓存是对同一个SqlSession而言的)。以下的项目是在mybatis初步使用(IDEA的Maven项目,超详细)的基础上进行。…

  • MessageDigest简要

    MessageDigest简要本文博客原參考文章:http://blog.sina.com.cn/s/blog_4f36423201000c1e.html一、概述java.security.MessageDigest类用于为应用程序提供信息摘要算法的功能,如MD5或SHA算法。简单点说就是用于生成散列码。信息摘要是安全的单向哈希函数,它接收随意大小的数据。输出固定长度的哈希值。关…

  • 利用serv-u创建ftp服务器_ftp读取目录列表失败

    利用serv-u创建ftp服务器_ftp读取目录列表失败一、由来最近改写了项目中ftp上传部分的代码。用到的组件为:<dependency><groupId>commons-net</groupId><artifactId>commons-net</artifactId><version>3.3</version></depen…

  • Java配置环境变量

    Java配置环境变量Java配置环境变量要想配置环境变量先要下载好JDK点击这里可以下载可以通过鼠标下滑找到以前的版本,网页最前面的部分是最新版本,一般来说用的都是jdk1.8这个版本。点击箭头位置下载根据自己需要下载,如何知道自己是x86还是x64呢?windows电脑右键点击此电脑—>属性知道了这个,就可以点进去下载了!如果需要账户就创建账户,然后就可以下载了,因为步骤简单,不放出来了!好的,现在默认JDK已经下好了,但是笔者的JDK版本不一致,但是配置环境变量是一样的下载好之后会得到这样

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号