首页 > 软件操作教程 > 编程开发 > Java
题目内容

Java操作应用——键值对的key和value互换一下

题目答案

 List<String> DBTypes = Arrays.asList("Oracle", "SYBASE","MYSQl子对象");

        List<String> JMXTypes = Arrays.asList( "消息中间件", "JBoss子对象", "Tomcat子对象",  "Apache子对象");

        List<String> HOSTTypes = Arrays.asList("HOST", "主机子对象");

        List<String> WMITypes = Arrays.asList("Windows单进程", "Windows");

像上面这样的场景你肯定遇到过。几个子类型,对应一个父类型,这可能有多个集合。那么如果我需要根据一个子类型,找到它对应的父类型,我就要遍历每个集合的子类型。而且由于HashMap的键不能重复,因此这种数据没有办法转成Map来操作。

这时候我们可以调换下思路,HashMap中的键不能重复,但是值是可以重复的。我们完全可以把上面所有的子类型当做key,其父类型当做value,存储到一个Map中去。下面我使用stream来把List转为Map:

        Map<String, String> map = Maps.newHashMap();

        map.putAll(DBTypes.stream().collect(Collectors.toMap(Function.identity(), i -> "JDBC")));

        map.putAll(JMXTypes.stream().collect(Collectors.toMap(Function.identity(), i -> "JMX")));

        map.putAll(HOSTTypes.stream().collect(Collectors.toMap(Function.identity(), i -> "HOST")));

        map.putAll(WMITypes.stream().collect(Collectors.toMap(Function.identity(), i -> "WMI")));

于是所有的子类型和父类型的对应关系就都存到一个Map中去了,我们找起来就太方便了,一行代码搞定!

 

网友评论(共0条评论)

请自觉遵守互联网相关政策法规,评论内容只代表网友观点!

最新评论

点击加载更多评论>>

软件操作 新人注册送三重礼

已有 22658 名学员学习以下课程通过考试

相关视频试题

最需教育客户端 软件问题一手掌握

去 App Store 免费下载 iOS 客户端