gpt4 book ai didi

java - ContainsValue 与 equals 方法 TreeMap

转载 作者:行者123 更新时间:2023-12-01 19:23:20 24 4
gpt4 key购买 nike

我想打印从扫描仪对象到达这里的选定键和值。我尝试过这种方式,发现有区别:

    TreeMap<String, String> oldbooks = new TreeMap<String,String>();
oldbooks.put("WaltDisney", "DonaldDuck");
oldbooks.put("Shakespeare", "Amleto");
oldbooksput("Dickens", "OliverTwist");

Scanner in = new Scanner(System.in);
String title = in.next();
boolean found = oldbooks.containsValue(title);
for(String k : oldbooks.keySet())
{
if(found) {
System.out.print("The value is : "+ oldbooks.get(k)
+" The Key is: "+ k);
}
}

我注意到通过这种方式我获得了每个键和每个值,我想要正确的键和正确的值。如果我改变 if 条件并输入:

if(title.equals(oldbooks.get(k))

现在它运行得很好。那么为什么我无法使用第一个解决方案打印指定的值和键呢?我知道 .equals 给我 true 和 false 就像 containsValue 一样。预先感谢您。

最佳答案

根据您的编辑,您将值放入不同的 map archivio 中,并尝试在不同的 map oldbooks 中搜索它。

这是故意的吗?或者这可能是您的代码中的问题!

下面的代码对我来说工作正常;

    TreeMap<String, String> oldbooks = new TreeMap<>();
oldbooks.put("WaltDisney", "DonaldDuck");
oldbooks.put("Shakespeare", "Amleto");
oldbooks.put("Dickens", "OliverTwist");

Scanner in = new Scanner(System.in);
String title = in.next();
boolean found = oldbooks.containsValue(title);
for(String k : oldbooks.keySet())
{
if(found) {
System.out.print("The value is: "+ oldbooks.get(k)
+" The Key is: "+ k);
}
}

当我在 IDE 中运行此程序时,我只需在控制台中输入 DonaldDuck 即可获得预期结果(打印所有键值对)。

此外,仅供引用,您在 system.out.print 语句中打印了不正确的键值。
键是 k,值是使用 oldbooks.get(k) 获得的值。反之则不然。 (正如第一条评论中@ dan1st 所指出的)。

关于java - ContainsValue 与 equals 方法 TreeMap,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59333942/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com