java - 将键与值列表进行比较 Java

标签 java comparison key-value treemap

假设TreeMap<String,List> one及其副本如下, 我想将第一个中的所有键与第二个中的所有值进行比较。如果某个键的值不匹配,例如本例中的 AUF_1060589919844_59496 和 AUF_1421272434570_1781,我想取回该键及其值。

{AUF_1060589919844_59496=[AUF_1086686287581_9999,
AUF_1086686329972_10049, AUF_1079023138936_6682], 
AUF_1087981634453_7022=[AUF_1421268533080_1741, AUF_1421268568003_1743],
AUF_1421268533080_1741=[AUF_1421268719761_1776], 
AUF_1421272434570_1781=[AUF_1087981634453_7022]}

上述内容的副本

    {AUF_1060589919844_59496=[AUF_1086686287581_9999,
AUF_1086686329972_10049, AUF_1079023138936_6682], 
AUF_1087981634453_7022=[AUF_1421268533080_1741, AUF_1421268568003_1743],
AUF_1421268533080_1741=[AUF_1421268719761_1776], 
AUF_1421272434570_1781=[AUF_1087981634453_7022]}

最佳答案

我从你的问题中了解到的是获取值及其值中不存在的 key 。我认为没有必要创建它的副本。我发布了一个代码片段,我认为这肯定会对您有所帮助

Map<String, List<String>> map = new HashMap<String, List<String>>(); //Add elements in map Collection<List<String>> list = map.values(); List<String> values = new ArrayList<String>(); for (List<String> listValues : list) { values.addAll(listValues); } for (String key : map.keySet()) { if (!values.contains(key)) { System.out.println("key ---->" + key); System.out.println("Values ------->"); for (String value : map.get(key)) { System.out.println(value); } } }

关于java - 将键与值列表进行比较 Java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28561452/

相关文章:

Java - 通过多行正则表达式匹配第一个字符串

php - 为什么 PHP 在[宽松地]比较两个数字字符串之前将它们转换为数字?

java - 为什么 Java 的 Double.compare(double, double) 是这样实现的?

nosql - NoSQL 数据库之间的差异

java - 用于 Windows 应用程序自动化的良好 Java 库

java - Eclipse 的环境变量

Java StringBuilder 附加垂直制表符失败

iphone - 比较 NSDate 的某些组件?

mysql - 相关键/值表索引/搜索