欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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

程序员文章站 2024-03-12 10:17:50
今天讲解的主要是使用多种方式来实现遍历hashmap取出key和value,首先在java中如果想让一个集合能够用for增强来实现迭代,那么此接口或类必须实现iterabl...

今天讲解的主要是使用多种方式来实现遍历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的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。