使用多种方式实现遍历HashMap的方法

网友投稿 198 2023-07-16


使用多种方式实现遍历HashMap的方法

今天讲解的主要是使用多种方式来实现遍历HashMap取出Key和value,首先在java中如果想让一个集合能够用for增强来实现迭代,那么此接口或类必须实现Iterable接口,那么Iterable究竟是如何来实现迭代的,在这里将不做讲解,下面主要讲解一下遍历过程。

//定义一个泛型集合

Map map = new HashMap();

//通过Map的put方法向集合中添加数据

map.put("001", "刘备");

map.put("002", "曹操");

map.put("003", "孙权");

方式一:使用该Map接口的KeySet方法来实现

问题:我们都知道Map接口并没有实现Iterable接口,为什么能用他的KetSet方法就能实现迭代呢?

解析:因为KeySet方法返回此映射中包含的键的 Set 视图,这个方法竟然能返回一个Set试图,也就说他的返回值类型是一个Set接口,我们可以通过API文档看到Set接口他是实现了Iterable接口,所以能实现迭代。

//调用KeySet方法放回一个Set接口类型

Set set = map.keySet();

//使用for增强来取出key和value

for (String item : set) {

CFKjvcBSystem.out.println("Key是:" + item + ";Value值是:" + map.get(item));

}

方式二:使用Map接口的Values方法实现(for增强)

同理:调用Map接口的values方法他放回一个Collection试图,Collection接口他又实现了Iterable接口,所以能够迭代。

Collection con = map.values();

for (String item : con) {

System.out.println("Value值是:" + item);

}

方式三:使用Map接口的entrySet方法实现(for增强)

entrySet:entrySet()的返回值也是返回一个Set集合,此集合的类型为Map.Entry,Map.Entry是Map声明的一个内部接口,此接口为泛型,定义为Entry。它表示Map中的一个实体(一个key-value对)。

Set> setentry = map.entrySet();

for (Entry item : setentry) {

System.out.println("Key是:" + item.getKey() + ";Value值是:"

+ item.getValue());

}

方式四:使用Map接口的keySet().Iterable()(while循环)

Iterable():返回在此 set 中的元素上进行迭代的迭代器。返回的元素没有特定的顺序(除非此 set 是某个提供顺序保证的类的实例)。返回值类型Iterator

Iterator it = map.keySet().iterator();

//如果仍有元素可以迭代,则返回 true。 while (it.hasNext()) { //获取Key值

String key = it.next(); System.out.println("Key是:" + key + ";Value值是:" + map.get(key));

}

方式五:使用Map接口的value.Iterable()(while循环)

Iterator it1 = map.values().iterator();

while (it1.hasNext()) {

String value = it1.next();

System.out.println("Value值是:" + value);

}

方式六:使用Map接口的entrySet().Iterable()(while循环)

Iterator> it2 = map.entrySet().iterator();

while (it2.hasNext()) {

Entry entry=it2.next();

System.out.println("Key是:" + entry.getKey() + ";Value值是:" + entry.getValue());

}


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:基于Java代码实现支付充值的通用流程
下一篇:今天你说520了吗?不仅有php表白书还有java表白神器
相关文章

 发表评论

暂时没有评论,来抢沙发吧~