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

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

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

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • html css 分页样式,css中分页样式

    html css 分页样式,css中分页样式css中分页样式css分页样式的设置,我们可以采用ul+li来实现,设置li标签float为left,让它们排列在一行,再设置li标签里面的a标签样式。具体实现如下:部分css代码解释#model14ul{padding-inline-start:0!important;/*设置ul的开头距离为零必面设置自动居中时影响美观*/}#model14li:first-child{mar…

    2022年7月17日
    15
  • 实际项目中如何使用Git做分支管理「建议收藏」

    实际项目中如何使用Git做分支管理「建议收藏」记得刚工作的时候根本不知道什么是版本管理工具,有一次和别人聊天,人家问你们公司代码用什么版本管理工具?我说啥是版本管理工具,我们一般用U盘拷贝,然后人家就顾左右而言他了。后来我知道了有个东西叫,后来又知道了还有个东西叫。所以说刚毕业的同学一定要优先进入专业的大公司,就像年轻时候应该去大城市闯两年一样,眼界以及你遇到的牛人会大大加快你以后成功的进程。本文主要是介绍一种在具体实践中使用Git来管理项目开发的一种成功的方式,其实主要思想来源于这篇文章Asuccessful…

    2022年10月1日
    1
  • 向量函数的内积_向量的内积运算

    向量函数的内积_向量的内积运算这是我的第一篇博客,谈谈自己在读研中的一些小思考,希望能给大家的学习带来一点启发。对于函数内积,我想很多理工科的都理解,最常用的就是傅里叶变换,一个信号与很多个频率的基函数相乘,也就是信号与每个基函数做内积,求得在每个基函数上的占比,或者说是在该基函数上的投影大小,遍历全部基函数,就求得在全部基函数的占比。![在这里插入图片描述](https://img-blog.csdnimg.cn/202…

    2022年9月1日
    3
  • 众包兼职平台有哪些_美团众包兼职的心酸

    众包兼职平台有哪些_美团众包兼职的心酸众包平台,是世界著名科技杂志《连线》(Wired)2006年发明的一个专业术语,用来描述一种新的商业模式,即企业利用互联网来将工作分配出去、发现创意或解决技术问题。那么,众包平台有哪些?五大众包平台,

    2022年8月2日
    3
  • 黑客手册中文版_黑客大追踪PDF

    黑客手册中文版_黑客大追踪PDF非安全黑客手册0911PDF电子书目录:新闻时评2颠覆杀毒市场,360强势插入!策划7功夫熊猫Hacker系漫游记4赤龙记得当初阿宝接触网络时,总是喜欢聊天,电脑只要开着,总会发现右下角有一个小企鹅。不知道何时,这个企鹅出现的几率比以往少了很多,但偶尔还是会出来冒个泡。冒泡…

    2022年9月17日
    0
  • 选择排序算法(C语言实现)[通俗易懂]

    选择排序算法(C语言实现)[通俗易懂]#include<stdio.h>voidchoice(int*a,intn){inti,j,temp;for(i=0;i<n-1;i++){for(j=i+1;j<n;j++){if(a[i]>a[j]){…

    2022年6月25日
    23

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

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