gpt4 book ai didi

java - 获取特定的HashMap实体并获取详细信息

转载 作者:行者123 更新时间:2023-12-02 04:51:51 25 4
gpt4 key购买 nike

这是我的类(class):

房屋详细信息:

private String forename;
private String surname;
private double houseName;
private int numberofHouses;


public CreditCardDetails(String forename, String surname, double houseName, int numberofHouses) {
this.forename = forename;
this.surname = surname;
this.houseName = houseName;
this.numberofHouses = numberofHouses;
}

购房:

 HashMap <String, HouseDetails> houses = new HashMap<String, HouseDetails>();

这只是一个例子。我试图首先查看 houseNumber 是否存在,然后检查 houseNumber 是否与 numberOfHouses 关联。

这是我迄今为止尝试过的:

public void checkIfHouseMatches(String number ,int numberofHouses){
for (HouseDetails det : houses.values())
if (houses.containsKey(number) && det.getNumberofHouses() == numberOfHouses) {
System.out.println("True");
}
else {
}

但是,如果 numberofHouses 与 HashMap 中的任何实体匹配,而不是我输入的特定门牌号,则返回 true。

我该如何解决这个问题?

最佳答案

您的支票有误。

您现在所做的将检查 map 是否包含该号码,如果任何 HouseDetails 具有您传递的 numberOfHouses,它将返回 true

假设您有 3 个房屋详细信息

HouseDetail1 (number = 1, noOfHouses = 5)
HouseDetail2 (number = 2, noOfHouses = 6)
HouseDetail3 (number = 3, noOfHouses = 5)

您搜索了数字 1 并且 noOfHouses = 6第一次迭代将为 false,因为 houses.containsKey(number)truedet.getNumberofHouses() == numberOfHouses错误

第二次迭代都将为true——但这是错误的。将其更改为类似以下内容:

if(houses.containsKey(number)){
if(houses.get(number).getNumberofHouses() == numberOfHouses){
System.out.println("True");
}else{
}
}

关于java - 获取特定的HashMap实体并获取详细信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29144633/

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