面试碰到的题目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);
		}
	}
}

祝学习愉快~

0

0 学习 · 9886 问题

查看课程