Java Map集合的遍历(简述)

Java Map集合的遍历(简述)

今天给大家分享一下集合的iterator遍历和增强for遍历(以map集合为例)

献给大家简单介绍一下map集合,map集合存储的是键值对,它和set、ArrayList等集合不同的是它不含add方法等添加元素,详细就不累述了,要用的时候可以直接去搜。它用put和remove增删元素,里面的元素是无序的,是线程不安全的集合。下面代码为例:

    private static Map inputkeyandvalue() {

        // TODO Auto-generated method stub

        Map<Integer,String> map = new HashMap<Integer,String>();

        map.put(1, "a");

        map.put(66, "b");

        map.put(6, "c");

        map.put(5, "a");

        System.out.println(map);

        System.out.println(map.get("66"));

        return map;

    }

在delete方法里面用remove删除map集合里面的元素(按照键删除键值对)

Map<Integer,String> recive_delete = inputkeyandvalue();

        recive_delete.remove(1);

接下来可以开始遍历map集合了(先用KeySet遍历方式),调用map的keyset方法,将数据存到Set集合当中,再用迭代器遍历或者增强for遍历遍历,以下为代码:

        //调用map的keyset方法,将数据存到Set集合当中,KeySet遍历方式

        Set<Integer> set = recive_mapset.keySet();

        //用迭代器遍历set

        System.out.println("迭代器遍历");

        Iterator<Integer> it = set.iterator();

        while(it.hasNext()){

            Integer key = it.next();

            String value = recive_mapset.get(key);

            System.out.println(key+"......"+value);

        }

       

        System.out.println("增强for遍历");

        for(Integer key :set){

            String value = recive_mapset.get(key);

            System.out.println(key+"......"+value);

        }

 

第二种遍历方式, 调用map的entry方法(entry表示的是键值对的关系),将键值对的关系存到set集合里面,遍历entry,然后调用entry的getKey和getValue的方法获得键与值。代码如下。

//将键值对的关系存到set集合里面,entrySet遍历方式

        Set<Map.Entry<Integer,String>> set = recive_mapset.entrySet();

        //增强for………

        //迭代器

        Iterator<Map.Entry<Integer,String>> it = set.iterator();

        while(it.hasNext()){

            //System.out.println(it.next());

            Map.Entry<Integer,String> entry = it.next();

            Integer key = entry.getKey();

            String value = entry.getValue();

            System.out.println(key +"........."+value);

        }

 

备注:我在java 项目里建了inputkeyandvalue()方法来创建一个map集合,在不同的方法中调用该方法生成map集合对象recive_mapset

源代码附在下面:

package day20;

 

import java.util.HashMap;

import java.util.Iterator;

import java.util.Map;

import java.util.Set;

 

public class MapDemo {

 

    public static void main(String[] args){

        //inputkeyandvalue();

        //delete();

        //mapset();

        entryset();

    }

 

    private static void entryset() {

        // TODO Auto-generated method stub

        Map<Integer,String> recive_mapset = inputkeyandvalue();

        //将键值对的关系存到set集合里面,entrySet遍历方式

        Set<Map.Entry<Integer,String>> set = recive_mapset.entrySet();

        //增强for………

        //迭代器

        Iterator<Map.Entry<Integer,String>> it = set.iterator();

        while(it.hasNext()){

            //System.out.println(it.next());

            Map.Entry<Integer,String> entry = it.next();

            Integer key = entry.getKey();

            String value = entry.getValue();

            System.out.println(key +"........."+value);

        }

       

    }

 

    private static void mapset() {

        // TODO Auto-generated method stub

        //

        Map<Integer,String> recive_mapset = inputkeyandvalue();

        //调用map的keyset方法,将数据存到Set集合当中,KeySet遍历方式

        Set<Integer> set = recive_mapset.keySet();

        //用迭代器遍历set

        System.out.println("迭代器遍历");

        Iterator<Integer> it = set.iterator();

        while(it.hasNext()){

            Integer key = it.next();

            String value = recive_mapset.get(key);

            System.out.println(key+"......"+value);

        }

       

        System.out.println("增强for遍历");

        for(Integer key :set){

            String value = recive_mapset.get(key);

            System.out.println(key+"......"+value);

        }

       

    }

 

    private static void delete() {

        // TODO Auto-generated method stub

        Map<Integer,String> recive_delete = inputkeyandvalue();

        recive_delete.remove(1);

        System.out.println(recive_delete);

    }

 

    private static Map inputkeyandvalue() {

        // TODO Auto-generated method stub

        Map<Integer,String> map = new HashMap<Integer,String>();

        map.put(1, "a");

        map.put(66, "b");

        map.put(6, "c");

        map.put(5, "a");

        System.out.println(map);

        System.out.println(map.get("66"));

        return map;

    }

}

 

 

如有不正确的地方欢迎大家指正,谢谢观看。

posted @ 2018-05-16 10:21  GotWindy  阅读(245)  评论(0编辑  收藏  举报