gpt4 book ai didi

java - 搜索 String 实例的 HashMap 值

转载 作者:行者123 更新时间:2023-12-01 21:41:17 24 4
gpt4 key购买 nike

我的 GUI 类中有一个 HashMap:

HashMap<Integer, Party> partyInput = new HashMap<>();

并使用用户输入的字符串搜索其实例的 hashMap 值。如何将字符串转换为派对对象或将派对对象转换为字符串?我可以轻松搜索该键,并且有几个其他程序可以搜索 String 的值,但无法弄清楚这种情况。尝试:

// target is the value input from user by JTextField
if (partyInput.containsValue(target)) {

}

给我“对have.util.Map.containsValue的可疑调用:给定对象不能包含String的实例(预期方)”。

派对类别:

import java.util.ArrayList;


public class Party extends GameElement{

ArrayList<Creature> creature = new ArrayList<>();

public Party() {
} // end default constructor

// constructor for all Party member fields
public Party (int index, String name) {
// get fields from parent GameElement class
super(index, name);
} // end Party constructor


// getter for creature members of each party
public ArrayList<Creature> getMembers() {
return creature;
} // end getMemebers method

// setter for creature members of each party
public void setMembers(ArrayList<Creature> partyMembers) {
this.creature = partyMembers;
} // end setMemebers method

@Override
public String toString() {

StringBuilder sb = new StringBuilder();
sb.append(String.format("%n**********************************************************"));
sb.append(String.format("%nParty: %s%n", getName()));
sb.append(String.format("Creatures %n"));
creature.stream().forEach((c) -> {
sb.append(String.format("**** %s%n", c.getName()));
});

return sb.toString();
} // end toString method
} // end Party class

任何帮助将不胜感激。

最佳答案

如果您可以从字符串构造一个 Party 实例,那么也许您可以执行以下操作:

if(partyInput.containsValue(new Party(text)) {
// Do something
}

假设equals已被适当覆盖。

或者您可以迭代设置的值并尝试匹配 Party 对象中的属性。

    for(Party party  : m.values()) {
if(text.equals(party.getXXX())) {
// Do something
}
}

关于java - 搜索 String 实例的 HashMap 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36407350/

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