Java 集合20 Map 获取

获取Map中的每一个键值对
获取集合中的元素。之前只能使用,get(键) 返回值。但是如果我们要获取集合中的所有元素,键就要不断的变化
如何取得所有的键?
在返回所有键的方法中,因为时所有的键,所以返回值的类型应该是一个集合,这个集合应该是Set 因为Map 中的键要保持唯一

Set<K> keySet() //返回此地图中包含的键的Set视图。  

演示:

package Collection;
import java.util.*;
//演示获取集合中的所有关系对
//keySet()
public class keySet_Map {
    public static void main(String[]  args){
        //创建集合
        Map<String,String> map = new HashMap<String,String>();
        //添加元素
        map.put("星期一","Mon");
        map.put("星期二","Tu");
        map.put("星期日","Sun");
        //Map中的所有键和值
        Set<String>  keyset = map.keySet();//将所有的键取出
        for(Iterator<String> it= keyset.iterator();it.hasNext();){
            String key = it.next();
            String value = map.get(key);//通过键获取值
            System.out.println(key+" :: "+value);
        }
        //高级循环
        for (String key:keyset){
            String value = map.get(key);
            System.out.println(key+" :: "+value);
        }
    }
}
//entrySet()
//获取关系,关系对应的类型是 Map.Entry   这是一个接口
         Set<Map.Entry<String,String>> entryset = map.entrySet();
         //在entryset  这个集合中,存储的是接口
         for(Iterator<Map.Entry<String,String>> it = entryset.iterator();it.hasNext();){//迭代这个集合取出的是关系,类型为 Map.Entry
             Map.Entry<String,String > entry= it.next();
             String key = entry.getKey();//通过接口的方法获得键和值
             String value = entry.getValue();
             System.out.println(key+" :: "+value);
         }
         //高级循环
        for(Map.Entry<String,String> me:entryset){
             String key =me.getKey();
             String value = me.getValue();
             System.out.println(key+"  :: "+value);
        }

运行结果:
星期二 :: Tu
星期日 :: Sun
星期一 :: Mon
星期二 :: Tu
星期日 :: Sun
星期一 :: Mon
获取方法总结:
1.Map 是没有迭代器的。所以是不能迭代Map 这个集合的

2.获取方法一:使用 getSet() 方法,将所有的键取出来存储到一个集合中(集合为Set 类型的:见要保证惟一性),遍历存储建的集合,通过get(key) 方法获取键对应的值

3.获取方法二:使用 entrySet() 方法,取出集合中的对应关系用Set(惟一性)存储(关系的类型为 Map.Entry 这是Map 中的一个接口。)再迭代存储关系的集合,获取每一个关系,使用Map.Entry 接口的方法 getKey() getValue() 方法获取键和值。

有获取所有键的方法当然也有获取所有值的方法
Values()

 //获取所有值
        Collection<String > c = map.values();
        for(Iterator<String> it = c.iterator();it.hasNext();){
            String s = it.next();
            System.out.println(s);
        }
         for(String s: c){
             System.out.println(s);
         }

这里写图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值