gpt4 book ai didi

java - 在TreeMap中查找某个值并保存

转载 作者:行者123 更新时间:2023-11-30 06:46:11 25 4
gpt4 key购买 nike

我在保存一些我想在 TreeMap 中查找的信息时遇到了问题。那个 TreeMap (tm) 有一个字符串作为键和一个 TreeSet(无关紧要的对象)作为值。我想找到某个键​​,然后将 TreeSet 存储在一个变量中,以便稍后对其进行操作。我该怎么做?

它弹出一个错误提示“类型不匹配:无法从 Object 转换为 TreeSet”

就像在等号忽略的情况下一样。

import java.util.*;

class ArbolS extends Arbol{
private TreeMap<String, TreeSet<PLoc>> tm;

public ArbolS(){
tm = new TreeMap<String, TreeSet<PLoc>>();
}

public boolean Insert(PLoc p){
boolean found = false;
Set it = tm.entrySet();
Iterator iterator = it.iterator();
Map.Entry mentry;
TreeSet<PLoc> aux;

while(iterator.hasNext() || found){
mentry = (Map.Entry)iterator.next();
if(mentry.getKey().equalsIgnoreCase(p.getPais())){
found = true;
aux = mentry.getValue(); //Error here
}
}
}
}

最佳答案

您应该将所有原始类型替换为参数化类型:

public boolean Insert(PLoc p){
boolean found = false;
Iterator<Map.Entry<String, TreeSet<PLoc>>> iterator = tm.entrySet().iterator();
TreeSet<PLoc> aux;
while (iterator.hasNext() && !found) {
Map.Entry<String, TreeSet<PLoc>> mentry = iterator.next();
if(mentry.getKey().equalsIgnoreCase(p.getPais())) {
found = true;
aux = mentry.getValue();
}
}
}

请注意,我还更改了条件 || found&& !found。如果 iterator.hasNext() 返回 false,您将无法留在循环中,并且您似乎想在找到第一个匹配项后退出循环。

关于java - 在TreeMap中查找某个值并保存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47925426/

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