1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > java中遍历map的几种方法介绍

java中遍历map的几种方法介绍

时间:2022-10-22 20:09:11

相关推荐

java中遍历map的几种方法介绍

喜欢用Java写程序的朋友都知道,我们常用的一种数据结构map中存储的是键值对,我们一般存储的方式是:

map.put(key, value);

而提取相应键的值用的方法是:

map.get(key);

确实,这些就是map的基本方法,可是,如果我想查看map中所有的元素怎么办?也就是想遍历其中的每个元素。

下面,我就介绍三种方法遍历map:

说明:我在map中存储的值是CSDN一博主的QQ签名,当我遍历的时候你会看到。

1.map不是集合,所以,map并不存在迭代器,但是,map中的一个方法可以使得map中的键成为一个集合,那么我们就可以利用集合的迭代器进行遍历,方法如下所示:

Set<Integer> s = (Set<Integer>)map.keySet(); Iterator<Integer> it = s.iterator(); int Key; String value; while(it.hasNext()) { Key = it.next(); value = (String)map.get(Key); System.out.println(Key+":\t"+value); }

2.map提供了另一个方法--entryset,使得我们可以获得map中存储的“键值对”集合,我们可以对键值对集合进行操作,进行遍历,方法如下所示:

Set<Entry<Integer, String>> s = map.entrySet(); Iterator<Map.Entry<Integer, String>> it = s.iterator(); Map.Entry<Integer, String> entry; int Key; String value; while(it.hasNext()) { entry = it.next(); Key = entry.getKey(); value = entry.getValue(); System.out.println(Key+":\t"+value); }

3.其实这种方法和第二种方法是一样的,只是我们用了不同的形式实现而已,这里不多说,方法如下:

for(Map.Entry<Integer, String> entry : map.entrySet()){System.out.println(entry.getKey() + ":\t" + entry.getValue());}

下面给出完整的测试代码以及运行后的结果:

package com.brucezhang.test;import java.util.HashMap;import java.util.Iterator;import java.util.Map;import java.util.Map.Entry;import java.util.Set;public class MapItTest {private static Map<Integer, String> my_map = new HashMap<Integer, String>();private static String[] my_value = {"I love three things", "The sun for the day", "The moon for the night", "The you forever"};/*** @param args* Author:DLUTBruceZhang*/public static void main(String[] args) {// TODO Auto-generated method stub//给 map 赋初值for (int i = 0; i < my_value.length; i++) {my_map.put(i, my_value[i]);}//使用第一种方法进行遍历theFirstItFun(my_map);System.out.println("----------------------------------------");//使用第二种方法进行遍历theSecondItFun(my_map);System.out.println("----------------------------------------");//使用第三种方法进行遍历theThirdItFun(my_map);}public static void theFirstItFun(Map<Integer, String> map) {Set<Integer> s = (Set<Integer>)map.keySet(); Iterator<Integer> it = s.iterator(); int Key; String value; while(it.hasNext()) { Key = it.next(); value = (String)map.get(Key); System.out.println(Key+":\t"+value); } }public static void theSecondItFun(Map<Integer, String> map){Set<Entry<Integer, String>> s = map.entrySet(); Iterator<Map.Entry<Integer, String>> it = s.iterator(); Map.Entry<Integer, String> entry; int Key; String value; while(it.hasNext()) { entry = it.next(); Key = entry.getKey(); value = entry.getValue(); System.out.println(Key+":\t"+value); } }public static void theThirdItFun(Map<Integer, String> map){for(Map.Entry<Integer, String> entry : map.entrySet()){System.out.println(entry.getKey() + ":\t" + entry.getValue());}}}

运行结果如下:

0:I love three things1:The sun for the day2:The moon for the night3:The you forever----------------------------------------0:I love three things1:The sun for the day2:The moon for the night3:The you forever----------------------------------------0:I love three things1:The sun for the day2:The moon for the night3:The you forever

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。