如何从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”密钥并且已填充。
答案 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)