分享好友 最新动态首页 最新动态分类 切换频道
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工具类的常用方法

最新文章
超逼真美女写真生成:最强AI工具评测与实用攻略
5. DeepArt DeepArt是另一个输出高质量逼真图像的强大工具。它利用深度学习算法,将图片转化为艺术画作,风格多样,结果令人惊艳。尽管种类选择丰富,但其绘制时间相对较长,用户需要耐心等待。总的来说,各个工具各有优劣,用户可以根据个
谷歌商店国际服(Google Play 商店)
谷歌商店国际服免费下载,一款为玩家带来丰富多样紫云的手机应用商城。在这里,玩家动动手指即可搜索到自己感兴趣的。类型丰富,超多的资源实时推送,免费分享,一键即可下载畅玩。绿色安全,无广无毒,随时随地查看,乐趣满满。1、谷歌商
筑梦青春志在四方 规划启航职引未来——第二届全国大学生职业规划大赛成长赛道校内选拔总决赛圆满完成
2024筑梦青春志在四方规划启航职引未来为了增强我校学生职业规划意识,指导学生及早做好就业准备,以择业新观念打开就业新天地,促进高质量充分就业。2024年12月12日,我校举办了第二届全国大学生职业生涯规划大赛成长赛道校内选拔总决赛。
蜂鸟风神系统_雷神推出“蜂鸟屏”:为游戏玩家提供卓越视觉享受古代知名地点,今朝更名换姓,居然可以这样
如今的游戏本市场竞争激烈,各大品牌在硬件配置上的差异越来越小,甚至出现了严重的同质化现象为了在众多产品中脱颖而出,许多厂商开始从屏幕质量方面寻求突破一块优质的屏幕不仅能让玩家享受到更加流畅和细腻的视觉效果,还能显著提升整体
腾讯广告投放平台下载安装?腾讯广告投放平台助手
腾讯广告投放平台助手安装步骤及使用介绍摘要:腾讯广告投放平台助手是腾讯推出的一款帮助广告主快捷管理腾讯广告投放的工具。本文将为大家介绍如何下载安装腾讯广告投放平台助手,以及使用方法和注意事项。一、下载安装腾讯广告投放平台助
微信小程序怎么制作自己的程序(微信小程序怎么制作自己的程序店铺)
3.第二,点击顶部导航栏的[小程序开发]按钮,点击[工具]按钮。可以看到,开发工具提供Windows 32位、Windows 64位和 Mca 三个版本。可根据实际情况,选择适合自己电脑的开发工具。4.第三,安装后,就可以直接启动开发者工具。如果是首次启
巴伦周刊发布美国智能投顾平台排行榜
我们已经进入变革阶段近十年Betterment在2010年推出了其自动化投资服务。在几年内,“智能投顾”已经威胁并开始颠覆金融业,就像亚马逊颠覆零售业一样。复杂的算法可以为大众提供个性化的投资组合建议,并且收费是人类投顾的四分之一。在我
逾期会如何影响信用记录和个人信用评分
是一种便捷的分期付款服务旨在帮助使用者解决短期资金需求。倘若使用者未能按期还款即发生逾期情况这不仅会增加额外的成本更会对个人信用记录产生负面作用。逾期记录一旦进入个人信用报告将成为未来信贷活动中的一大障碍。信用评分是金融机
线上SEO揭秘,揭秘神秘面纱,导航网站优化高效之路
线上SEO并非神秘,实则是一门科学。本文深入解析SEO原理,揭秘优化技巧,助您掌握网站优化之道,提升网站排名,实现网络营销目标。随着互联网的快速发展,(搜索引擎优化)已经成为企业、个人网站提高网站排名、提升品牌知名度的必备手段,
韩漫免费阅读全集漫画——一款提供海量韩漫资源的阅读 APP
在这个数字化的时代,漫画作为一种受欢迎的文化形式,已经走进了人们的生活。对于喜欢看漫画的人来说,能够免费阅读全集漫画无疑是一件令人兴奋的事情。今天,我要向大家介绍一款名为“韩漫免费阅读全集漫画”的阅读 APP,它为用户提供了海
相关文章
推荐文章
发表评论
0评