面试碰到的题目2
来源:1-1 周介绍
何艾莉
2022-09-29 15:10:41
老师好,Set和Map怎样互相转化,请给个代码解析,谢谢。
1回答
好帮手慕小蓝
2022-09-29
同学你好,由于Map和Set的存储方式不同,转化时也是有约束的:
1.Map中的键转化为Set时可以使用keySet方法
2.Map中的值转化为Set时,需要经过两次转化
3.Map中的键值对转化为Set时,可以使用entrySet方法
实例代码如下:
package com.imooc.test; import java.util.Collection; import java.util.HashMap; import java.util.HashSet; import java.util.Map; import java.util.Map.Entry; import java.util.Set; public class Test { public static void main(String[] args) { //创建集合 Map<String,String> map = new HashMap<>(); //1.Map中的键转化为Set时可以使用keySet方法 Set<String> keySet = map.keySet(); //2.Map中的值转化为Set时,需要经过两次转化 Collection<String> values = map.values(); Set<String> valueSet = new HashSet<>(values); //3.Map中的键值对转化为Set时,可以使用entrySet方法 Set<Entry<String,String>> entrySet = map.entrySet(); } }
而Set转换为Map,则需要Set中的所有数据作为Map的键,在集成第三方组件之间,最简单的方式是用循环迭代的方式完成。
实例代码如下:
package com.imooc.test; import java.util.HashMap; import java.util.HashSet; import java.util.Map; import java.util.Set; public class Test { public static void main(String[] args) { //创建集合 Set<String> set = new HashSet<>(); Map<String,String> map = new HashMap<>(); for (String key : set) { map.put(key, null); } } }
祝学习愉快~
相似问题