我需要创建逆映射-选择唯一值,然后为它们找到键。似乎唯一的方法是迭代所有键/值对,因为entrySet返回的so值的集合不是唯一的?谢谢。
映射中的值可能不是唯一的。但是,如果它们是(在您的情况下),则可以按照您在问题中所写的内容进行操作,并创建将其转换的通用方法:
private static <V, K> Map<V, K> invert(Map<K, V> map) {
Map<V, K> inv = new HashMap<V, K>();
for (Entry<K, V> entry : map.entrySet())
inv.put(entry.getValue(), entry.getKey());
return inv;
}
Java 8:
public static <V, K> Map<V, K> invert(Map<K, V> map) {
return map.entrySet()
.stream()
.collect(Collectors.toMap(Entry::getValue, Entry::getKey));
}
用法示例:
public static void main(String[] args) {
Map<String, Integer> map = new HashMap<String, Integer>();
map.put("Hello", 0);
map.put("World!", 1);
Map<Integer, String> inv = invert(map);
System.out.println(inv); // outputs something like "{0=Hello, 1=World!}"
}
旁注:该put(.., ..)
方法将返回键的“旧”值。如果它不为null,则可能抛出new IllegalArgumentException("Map values must be unique")
或类似的东西。
问题内容: 我在程序中插入了一个字符串 怎样才能得到像这样的反向字符串 这是我面试中的一个面试问题。请任何人可以帮助我解决这个问题 问题答案: 拆分它,然后以相反的顺序将其添加到新的对象中。 打印:
问题内容: 如何反转OpenCV的Java API中存储的图像的颜色?使用使我出错。 问题答案: 方法将尝试取矩阵的逆函数,这就是失败的原因(很可能您的图像矩阵不可逆)。 您可以相互减去两张图像,因此可以创建所有值均为255的图像,然后从中提取原始图像(如果这是通过反转颜色表示的)。
问题内容: 我保存在一个名为的String变量中。 我需要打印,但是要反转。 我怎样才能做到这一点?我知道Java中已经内置了某种功能。 问题答案: 你可以使用此: 或者,对于JDK 1.5之前的版本,请使用代替-它们具有相同的。感谢评论员指出,如今在没有并发问题的情况下,这是首选方法。
问题内容: 我还没有找到满足我的功能特定需求的任何东西,是的,这是用于家庭作业。 所以我有: 前提条件:x.length> 0 我不能让函数返回任何东西,而唯一的参数是数组这一事实使我感到困惑。 我已经尝试过将循环与递归一起使用,但是我尝试过的一切似乎都以生成函数的无限实例结束。 我已经有了一个想法/建议与该函数一起使用另一个函数,但是,当前如何递归地使用原始函数超出了我的范围。 任何帮助表示赞赏
问题内容: 给定这样的字典: 如何将这张地图倒置即可: 问题答案: 对于Python 2.7.x 对于
添加到StringBuilder中,然后调用reverse()。