使用IF迭代地图值

时间:2018-04-18 19:09:49

标签: java hashmap iteration

由于某种原因,我不能让我的迭代工作。我有两个班,汽车和车库。 我在Garage类中有Map<Integer, Cars> cars = newHashMap<>();,我想遍历Map中的所有Car对象,寻找“Ford”的值,然后将其打印出来。

任何帮助/解释都会很棒,因为非常新手。

private String model;
model = "Ford";

public void carMake() {
    for (Cars eachCar : cars.values()) {
        if (cars.containsValue(model)) {
            System.out.println("It is a ford");
        }
    }     
}

1 个答案:

答案 0 :(得分:1)

尝试一下,假设Car类有一个getModel()函数返回汽车Model(Ford):

public void carMake() {
    for(Cars eachCar : cars.values()) {
        if("Ford".equals(eachCar.getModel()) {
             System.out.println("It is a ford");
        }
    }
}

在您的代码中,每个交互都会检查您的地图(包含Cars值)是否包含您的模型(即字符串)。即使您认为您的模型变量是具有模型值=&#34;福特&#34;的汽车,您每次互动都会检查整个地图,而不是当前值。