当前位置: 移动技术网 > IT编程>开发语言>Java > 使用多种方式实现遍历HashMap的方法

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

2019年07月22日  | 移动技术网IT编程  | 我要评论

淘宝钻石,2012cba总决赛第五场,校运会解说词

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

//定义一个泛型集合
map<string, string> map = new hashmap<string, string>();
//通过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<string> set = map.keyset();
    //使用for增强来取出key和value
    for (string item : set) {
      system.out.println("key是:" + item + ";value值是:" + map.get(item));
    }

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

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

collection<string> con = map.values();
    for (string item : con) {
      system.out.println("value值是:" + item);
    }

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

entryset:entryset()的返回值也是返回一个set集合,此集合的类型为map.entry,map.entry是map声明的一个内部接口,此接口为泛型,定义为entry<k,v>。它表示map中的一个实体(一个key-value对)。

set<entry<string, string>> setentry = map.entryset();
    for (entry<string, string> item : setentry) {
      system.out.println("key是:" + item.getkey() + ";value值是:"
          + item.getvalue());
    }

方式四:使用map接口的keyset().iterable()(while循环)

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

iterator<string> 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<string> it1 = map.values().iterator();
    while (it1.hasnext()) {
      string value = it1.next();
      system.out.println("value值是:" + value);
    }

方式六:使用map接口的entryset().iterable()(while循环)

iterator<entry<string, string>> it2 = map.entryset().iterator();
    while (it2.hasnext()) {
      entry<string,string> entry=it2.next();
      system.out.println("key是:" + entry.getkey() + ";value值是:" + entry.getvalue());
    }

以上这篇使用多种方式实现遍历hashmap的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持移动技术网。

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网