【问题标题】:Iterate through map values with IF使用 IF 遍历映射值
【发布时间】:2018-04-18 19:09:49
【问题描述】:

由于某种原因,我无法让我的迭代工作。我有两个班,汽车和车库。 我在 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");
        }
    }     
}

【问题讨论】:

  • 你不应该问类似if (eachCar.model().equals(model))的问题吗?
  • modelString,您的地图值为Cars
  • 你甚至没有使用循环变量eachCar。为什么?
  • 显示 Cars 类并扩展您的描述,否则,您的问题是模棱两可的。
  • 假设类 Car { String model;您应该检查 eachCar.getModel() 与“福特”的相等性

标签: java hashmap iteration


【解决方案1】:

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

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

在您的代码中,每次交互都会检查您的地图(包含 Cars 值)是否包含您的模型(即字符串)。即使您假设您的模型变量是模型值 = "Ford" 的汽车,但每次交互您都在检查整个地图,而不是当前值。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-08-22
    • 2012-05-14
    • 1970-01-01
    • 2018-07-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多