如何迭代HashMap <string,arraylist <car =“”>&gt; </string,>

时间:2012-09-02 04:25:56

标签: java hashmap

如何从HashMap打印ArrayList?

Map<String, ArrayList<Car>> cars = new HashMap<String, ArrayList<Car>>;

ArrayList<Car> carList = cars.get("bmw");

    for (int i = 0; i < carList.size(); i++) {
        System.out.println(carList.get(i));
    }

代码导致:

java.lang.NullPointerException

尽管存在“bmw”密钥并且已填充。

5 个答案:

答案 0 :(得分:1)

尝试添加

System.out.println(cars.get("bmw"));

检查并查看其中的确切内容(在Map中,以及汽车的ArrayList)。

答案 1 :(得分:1)

Iterator<String> itr = carList.iterator();
    while (itr.hasNext()) {
      String element = itr.next();
      System.out.print(element + " ");
    }

Inoder要执行此操作,carList不应为空值 要向ArrayList添加值,可以使用

carList.add("Some value");

答案 2 :(得分:0)

迭代列表的最简单方法是使用foreach:

ArrayList<Car> carList = cars.get("bmw");  
for (Car car : carList) {
    System.out.println(car.getYourValueToPrint());
}

答案 3 :(得分:0)

迭代ArrayList的最安全方法是通过增强每个循环,这样可以省去NullPointerException的痛苦:

ArrayList<Car> carList = cars.get("bmw");
for(Car car: carList){
    car.doAnyOpertation();
    System.out.println(car.getAnyValue());
}

答案 4 :(得分:0)

ArrayList<Car> carList = cars.get("bmw");
for(Car car: carList){
    car.doAnyOpertation();
    System.out.println(car.getAnyValue());
}

即使在此,如果carList为null,则行
为 抛出NPE for(Car car: carList)

相关问题