HashMap的代码实现-垂直遍历1

无序
1、containsKeys
是否包含键
2、containsValues
是否包含值
3、put(Keys,Values)
将键=值加入到HashMap中
4、get(Keys)=Values
获取键对应的值
可以和put连用,表示在索引值为多少的值中加入什么。
5、KeySet()
输入键
6、Values()
输出值。

数据结构:

Map(int,List


复习一下上一篇文章的知识,比如为什么会有4这个方法。下面代码实践可以说明数据结构:Map(int,List)实际应用。

如下图:

HashMap的代码实现-垂直遍历1_第1张图片

我们发现无论ArrayList定义多少值,总是加入的是括号。

那么怎么对Map里面的值填入数值呢?

有两种办法,

1、定义3个List对象,然后add数值,再加入Map,但是这个要定义3个对象,较为繁琐

2、加入3个List空对象,可以不用加1,2,3。因为即使是有数值,加进去仍然是空括号。然后get(键)得到值:列表,再把数值加入列表中,

我会单独讲一下,需要重置数列还是需要保存数列,这里用到的是每次都保存数列,即每次开始都是保存上一次循环值的数列。

HashMap的代码实现-垂直遍历1_第2张图片

注意这里的get不是索引值,因为Map是无序的,同理Set也是无序的,所以靠着键对应唯一值。但是List,Stack,Deque是按照索引值。

HashMap的代码实现-垂直遍历1_第3张图片

在这里我们可以发现通过,取得键得到值:列表,再通过add加入值,这里又要发散性思维,上图是8,88,888。

可以自己控制顺序。例如二叉树的锯齿型层序遍历,奇数层从左往右,偶数层从右往左。

如下图:

HashMap的代码实现-垂直遍历1_第4张图片

HashMap的代码实现-垂直遍历1_第5张图片

可以控制加入顺序。、

比如下列代码

HashMap的代码实现-垂直遍历1_第6张图片

通过keySet()再加入数值,错误×。

通过keySet()contains某某值,正确√。如下图:

HashMap的代码实现-垂直遍历1_第7张图片

 

 

 

你可能感兴趣的:(算法)