java人工智能文档处理_床长人工智能教程免费文档——JAVA中集合框架的知识点总...

.

06f69fe4c1f5505432e7c1f8fc47d51f.png

声明:本人只是分享一些床长人工智能教程相关的免费pdf文档而已,并非床长人工智能网校的收费文章。尊重版权,支持原创!

题外话

记得原来在学校的时候,大二选修了这门课,老师只教到多态继承就闪人了,不去评论他是否敬业。

后期自己不断摸索,对的掌握还好能在简历上写下熟悉二字。

本以为,不会再去写这样基础的博客了,但是想想后面要走的路还有很长很长,不能在摸索的过程中忘记来时的路,必须有深刻的理解。

还是那句话,温故而知新,愿每一次的回眸,都会有不一样的收获。

再说一点。

不要去为了面试而去学习。

在百度谷歌的搜索框,打下,百分之九十的概率,出现和的区别这类的问题,在搜索框打下,连都不用打全,就会出现和这样类似的推送,在搜索框打下,基本上就是什么是三次握手,四次挥手之类的等等,这样的例子很多,因为这些都是常见的面试题,虽说应付面试有应付面试的一套,但是你必须永远清楚明白一点

学习是日积月累的,技术是需要积淀的!计算机科学技术发展了这么多年,技术的点涵盖是非常广阔的,你可能穷尽一生的去学习,这必须是自主的,出于内心对技术的热爱,去追求,才能成为一名优秀的程序员!愿你我共勉!

目前这篇博客里主要是一些知识点的总结,基本上没有示例代码,后期会陆续补上

基本概念

在的名著中,描述集合框架是在第十一章,持有对象,更为深入的介绍在十七章。

如果一个程序只包含固定数量的且其生命期都是已知的对象,那么这是一个非常简单的程序。

往往在开发的过程中,我们并不能确定,这个程序会创建多少个对象,所在在对对象的存储过程中,我们无法用一个固定长度的容器如数组去存储它。

中有多种保存对象的方式,数组是一种方式,他是编译器支持的类型,但是他的长度是固定的,所以很多时候并不可取。

所以这也是为什么我们要学习集合框架,中的容器类。

容器类类库的用途是保存对象,并将其划分为两个不同的概念一个独立元素的序列,这些元素都服从一条或多条规则。

必须按照插入的顺序保存元素,而不能有重复元素。

按照排队规则来确定对象产生的顺序。

一组成对的键值对对象,允许你使用键来查找值。

映射表让我们能够使用一个对象来查找另一个对象,就像字典一样。

是强大的编程工具。

接口和接口的不同

是双列的,是单列的的键唯一,的子体系是唯一的集合的数据结构值针对键有效,跟值无关集合的数据结构是针对元素有效

接口的成员方法

把集合转成数组,可以实现集合的遍历

迭代器,集合的专用遍历方式

谈到迭代器,这是个很有意思的东西是我最喜欢的设计模式,虽然用的不多,但是就是莫名的喜爱。

迭代器的设计思想,不暴露具体如何遍历这些结合,而提供一个相同的访问方法去遍历这些集合,专业点的描述迭代器是一个对象,它的工作是遍历并选择序列中的对象,而客户端程序员不必知道或关心该序列底层的结构。

有兴趣的朋友可以去研究一下,学习完集合框架,尝试自己看一下的实现源码,然后自己模拟实现一下等,在模拟的过程中,你会发现迭代器的有趣之处。

曾经我就是这么探索中的数据结构,非常的有趣。

此外,迭代器通常被称为轻量级对象创建它的代价小。

因此会有一些限制如只能单向移动

使用方法要求容器返回一个检查是否有下一个元素获取下一个元素将迭代器新近返回的元素删除

开发中用的很多底层数据结构是一个自增长的数组,查询快,增删慢线程不安全,效率高底层数据结构是也是数组,查询快,增删慢线程安全,效率低类特有功能

底层数据结构是链表存储地址不连续,查询慢,增删快线程不安全,效率高类特有功能

是一个不包含重复元素的。

中最常被使用的是测试归属性,你可以很容易的查询某个对象是否在其中。

正因如此,查找成了中的重要操作,因此你通常都会选择一个实现,它专门进行了优化。

具有与完全一样的接口,因此没有任何额外的功能,不像一样有不同的。

实际上就是,只是行为不同。

加入的元素必须定义方法以确保对象的唯一性

为快速查而设计的。

存入的元素必须定义不保证的迭代顺序,特别是它不保证该顺序恒久不变。

如何保证元素唯一性底层数据结构是哈希表元素是链表的数组哈希表依赖于哈希值存储添加功能底层依赖两个方法

具有的查询速度,且内部使用链表维护元素的顺序插入的次序。

于是在使用迭代器遍历时,结果会按元素插入的次序显示。

元素也必须定义方法元素有序唯一由链表保证元素有序由哈希表保证元素唯一保持次序的,底层为树结构。

使用它可以从中提取有序的序列。

元素必须实现接口。

使用元素的自然顺序对元素进行排序或者根据创建时提供的进行排序具体取决于使用的构造方法。

必须提的一点是如何保证元素的排序和唯一性的?

底层数据结构是红黑树红黑树是一种自平衡的二叉树!红黑树属于比较复杂的一种数据结构,我也计划着后期写一篇博客专门研究一下的源码,有兴趣的朋友我们可以一起探讨。

的思想,映射表也可以称为关联数组的基本思想是它维护的键值对关联,因此你可以使用键来查找值。

标准的类库中包含了的集中基本实现类,包括,,。

它们都有同样的基本接口,但是行为特效各不同,这表现在效率键值对的保存及呈现次序对象的保存周期映射表如何在多线程程序中工作和判定键等价的策略等方面。

接口实现的数量应该可以让你感觉到这种工具的重要性。

接口成员方法

这里提一下的遍历方式吧

方式根据键找值

获取所有键的集合

遍历键的集合,获取到每一个键

根据键找值

这里应当有代码,这篇博客目前基本上没有代码,最近很忙,后期都会补上

方式根据键值对对象找键和值

获取所有键值对对象的集合

遍历键值对对象的集合,获取到每一个键值对对象

根据键值对对象找键和值

基于散列表的实现它取代了。

插入和查询键值对的开销是固定的。

可以通过构造器设置容器和负载因子,以调整容器的性能。

类似于,但是迭代遍历它时,取得键值对的顺序是其插入次序,或者是最近最少使用的的次序。

只是比慢一点,而在迭代访问时,反而更快,因为它使用链表维护内部次序。

基于红黑树的实现,查看键或键值对时,它们会被排序次序由或决定。

的特点在干,所得到的结果是经过排序的。

是唯一带有方法的,它可以返回一个子树弱键映射,允许释放映射所指向的对象,这是为解决某类特殊问题而设计的。

如果映射之外没有引用指向。。。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值