java集合框架的练习之Map集合以及其内部接口Entry的应用

13 篇文章 0 订阅
3 篇文章 0 订阅

知识整理:


 1.Map.Entry<K,V>是Map接口的一个内部接口, 而子类Entry<K,V>实现了Map.Entry<K,V>接口.
 2.Map内部包含keySet()、entrySet()等方法, Map没有迭代器iterator.
 3.Set<Map.Entry<K, Y>> entrySet()方法: 返回此映射中包含的映射关系的Set视图. 内部包含getKey(),getValue()等方法。



要求:

  实现Map集合的遍历并输出键和值



分析:

 1.获取所有键值对对象的集合
 2.遍历该键值对对象
 3.根据键值对对象获取键和值




代码实现:

import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Scanner;
import java.util.Set;

public class Map_Entry {

    public static void main(String[] args) {
    
        /*输入键值对数据*/
    
        Map<String, Integer> map = new HashMap<>();
        
        //方法一
        map.put("aaa", 111);
        map.put("bbb", 222);
        map.put("ccc", 333);
        map.put("ddd", 444);
        
        //方法二
        Scanner input = new Scanner(System.in);
        System.out.println("please input data as 'key, value':");
        
        while (input.hasNext()) {       //  ctrl + z   ==>   停止录入
            String line = input.nextLine();
            String[] arr = line.split(", ");        //用', '对字符串line进行分割,分割结果以arr[]类型存储
            String key = arr[0];
            Integer value = Integer.valueOf(arr[1]);       //将String类型的value值封装成Integer类型
            map.put(key, value);
        }
        
        input.close();
        
        
        
        /*根据键值对对象获取键和值*/
        
        Set<Map.Entry<String, Integer>> enterSet = map.entrySet();        // entrySet()方法:返回此映射中包含的映射关系的Set视图
        
        //方法一
        for (Map.Entry<String, Integer> entry : enterSet) {
            System.out.println(entry.getKey() + " = " + entry.getValue());
        }
        
        //方法二
        Iterator<Map.Entry<String, Integer>> it = enterSet.iterator();  //获取迭代器
        
        while (it.hasNext()) {
            Map.Entry<String, Integer> me = it.next();     //获取每一个Entry对象 父类引用指向子类对象
            //Entry<String, Integer> me = it.next();       //直接获取子类对象
            
            String key = me.getKey();
            Integer value = me.getValue();
            System.out.println(key + " = " + value);
        }
    }

}



运行结果

1.直接输入:


2.键盘接收:



查阅相关知识请点击:

https://github.com/striner/javaCode/edit/master/Map&Entry

https://github.com/striner/javaCode


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值