面试碰到的题目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);
}
}
}祝学习愉快~
相似问题