分享好友 最新动态首页 最新动态分类 切换频道
Java——容器(双例集合)(下)
2024-12-26 19:46

1 TreeMap容器的使用


(对Key排序——>需要给定排序规则)

Java——容器(双例集合)(下)

(TreeMap和HashMap同样实现了Map接口——>用法来说是没有区别)

(TreeMap 和 TreeSet的区别)

(1 元素自身实现比较规则——>实现Comparable接口——>重写compareto方法)

(2 通过比较器(外部定义)实现比较规则——>实现Comparetor接口——>重写compare方法)




TreeMap和HashMap同样实现了Map接口,所以,对于API的用法来说是没有区别的。HashMap效率高于TreeMap;TreeMap是可以对键进行排序的一种容器,在需要对键排序时可选用TreeMap。TreeMap底层是基于红黑树实现的。

在使用TreeMap时需要给定排序规则

  • 元素自身实现比较规则
  • 通过比较器实现比较规则

1.1 元素自身实现比较规则

 
 

1.2 通过比较器实现比较规则

 
 
 




1.3 TreeMap 和 TreeSet的区别

 







2 TreeMap源码分析

(TreeMap是红黑二叉树的典型实现)

(只有在需要排序的Map时才选用TreeMap)

TreeMap是红黑二叉树的典型实现。我们打开TreeMap的源码,发现里面有一行核心代码

 

root用来存储整个树的根节点。我们继续跟踪Entry(是TreeMap的内部类)的代码

可以看到里面存储了本身数据、左节点、右节点、父节点、以及节点颜色。 TreeMap的put()/remove()方法大量使用了红黑树的理论。在此不再展开。需要了解更深入的,可以参考数据结构里面的笔记

TreeMap和HashMap实现了同样的接口Map,因此,用法对于调用者来说没有区别。HashMap效率高于TreeMap;在需要排序的Map时才选用TreeMap。










1 Iterator接口

(定义了迭代单例集合的标准)

(Collection接口继承了Iterable接口,可以迭代所有Collection接口下的容器)

(3个方法)





1.1 Iterator迭代器接口介绍

Collection接口继承了Iterable接口,在该接口中包含一个名为iterator的抽象方法,所有实现了Collection接口的容器类对该方法做了具体实现。iterator方法会返回一个Iterator接口类型的迭代器对象,在该对象中包含了三个方法用于实现对单例容器的迭代处理。

通过游标遍历

1.3 Iterator接口定义了如下方法

  1. //判断游标当前位置的下一个位置是否还有元素没有被遍历
  2. //返回游标当前位置的一个元素并将游标移动到下一个位置
  3. //删除游标当前位置的元素,在执行完next后该操作只能执行一次








2 Iterator迭代器的使用

(获取迭代器对象)

(hasNext(),next()——>在for或者while里面使用)

(如果想迭代map——>1 通过map里面的keySet方法获取所有的key

2 通过Map.entry方法获取所有的键值对对象 ——>这两个方法都是返回set类型)



2.1 迭代List接口类型容器

 

2.2 迭代Set接口类型容器

 

2.3 迭代Map接口类型容器——>(对map容器里面的set进行迭代)

 







3 在迭代器中删除元素

(不要在一次循环中多次调用next方法)

(在迭代时任何操作都不要改变容器长度)

(remove必须在next方法之后使用)

(普通for循环和增强for循环——>都不支持边迭代边删除——>只能使用迭代器)

 








4 遍历集合的方法总结

1 List——>4种

遍历List方法一:普通for循环——>(size和get方法)

 

遍历List方法二:增强for循环(使用泛型)——>(不依赖索引的)

 

遍历List方法三:使用Iterator迭代器(1)——>(实例对象,hasNext(),next()方法)

 

遍历List方法四:使用Iterator迭代器(2)——>(实例对象,hasNext(),next()方法)

 

2 Set——>2种

遍历Set方法一:增强for循环

 

遍历Set方法二:使用Iterator迭代器

 

3 Map——>2种

遍历Map方法一:根据key获取value

 

遍历Map方法二:使用entrySet

 








5 Collections工具类使用

(操作所有容器的工具类)

(提供了对Set、List、Map进行排序、填充、查找元素的辅助方法)

(sort——>排序前提要实现比较规则,前面两种方法)



类 java.util.Collections 提供了对Set、List、Map进行排序、填充、查找元素的辅助方法。

方法名说明void sort(List)对List容器内的元素排序,排序规则是升序。void shuffle(List)对List容器内的元素进行随机排列void reverse(List)对List容器内的元素进行逆续排列void fill(List, Object)用一个特定的对象重写整个List容器int binarySearch(List, Object)对于顺序的List容器,折半查找查找特定对象

Collections工具类的常用方法

最新文章
网站点击排名优化,提升网站流量与用户体验的全方位策略,网站点击排名优化什么意思
网站点击排名优化是指通过一系列技术和策略,提高网站在搜索引擎中的排名,从而增加网站流量和用户体验。这包括优化网站内容、结构、链接等方面,以提高网站在搜索引擎中的可见性和权威性。通过点击排名优化,网站可以吸引更多的访问者,提
搜狗浏览器下载2015官方版 v6.2 最新电脑版
是一款拥有极速浏览速度的双核浏览器。搜狗浏览器下载2015采用最新的chrome内核和ie内核,其浏览速度毋庸置疑,但是现在市场上的浏览器也同样采用这两个内核,于是搜狗推出了智能预读系统,用户在输入网址时,浏览器智能识别用户输入的地址
第三季全球手机排行榜 诺基亚独占七席
  11月4日消息,据国外媒体报道,知名电子产品批发商RCS日前表示,在今年第三季度的全球十大畅销手机排行榜上,诺基亚依然实力强劲,独占了7个席位。而在上一季度排名第五的大众宠儿iPhone 在本季度却榜上无名。  以下是RCS统计的第三
昆仑山
首页 此部分内容前置为铸剑山庄开启紫金熔炉,未开启则不会刷出尸体昆仑山(9,14):尸体,第一次探查,获得【冰穿子】x1;第二次探查获得纸条,阅读得知冰面下面有东西,之后可以掩埋尸体昆仑山(18,16):冰面,使用冰穿子挖凿,选择冰窟窿,
雅思教学培养方案怎么写(雅思培训课程是怎么设置的)
1、第三个方法,社交学习法。每个人都会有疲倦期,这个时候,我们需要内外刺激,而社交学习法就属于外部刺激。也就对应了一句话“一个人可以走得很快,但是一群人才能走得很远。2、雅思如何自学方法如下:听力:雅思词汇是雅思正常考试的核
百度快速排名优化工具(百度seo快速排名优化)
在当今竞争激烈的网络环境中,网站的排名对于企业和个人的在线存在至关重要,百度作为国内最大的搜索引擎之一,其搜索结果页面的排名直接影响着网站的流量和曝光度,为了在百度上获得更好的排名,许多网站所有者和 SEO 从业者开始寻求百度
开发销售打卡“神器”获刑
2023年8月,刚大学毕业的小张到宁波找工作,面试几家公司后发现多数公司都需要通过App来考勤打卡,他觉得特别麻烦,在和同学聚餐时聊起此事,同学向他推荐了一个可以实现虚拟定位打卡的网站。小张登录了这个网站,加了网站管理员的微信。在
使用宝塔搭建环境,以及把自己本地的Web项目通过宝塔发布到远程云服务器上
使用宝塔搭建服务器的环境 什么是搭建服务器环境 所谓的搭建环境其实也就是下载应用,然后把应用对应的端口号在三个地方开启,这三个地方分别是,宝塔的安全菜单的防火墙,阿里云的安全组,阿里云云服务器中
非常聪明的AI眼镜即将到来!VRETF(159786)今日微跌0.67%,利亚德涨19.94%
AI眼镜方向传来新消息。据领益智造消息,12月13日,在AndroidXR发布会上,谷歌与国内消费级AR眼镜厂商XREAL达成了战略合作,共同打造AndroidXR生态。。2024年12月13日,A股市场震荡调整。VR指数成份股中,利亚德涨19.94%,奥飞娱乐涨10.03%
重庆网站建设seo公司 重庆SEO网站建设公司优化指南
重庆网站建设SEO公司:打造企业网络新生态的领航者在当今数字化时代,互联网已成为企业展示形象、拓展市场、提升品牌影响力的核心平台而对于地处西南经济重镇的重庆企业而言,拥有一个高效、美观且具备强大SEO(搜索引擎优化)能力的网站,
相关文章
推荐文章
发表评论
0评