Map<Car,Integer> map=new HashMap<Car,Integer>();
Car car1=new Car("red","bmw");
Car car2=new Car("white","byd");
map.put(car1,50);
map.put(car2,10);
/**
* 通过Iterator遍历写法1
*/
Set<Map.Entry<Car,Integer>> entry=map.entrySet();
Iterator it=entry.iterator();
while(it.hasNext()){
Map.Entry<Car,Integer> en=(Map.Entry<Car,Integer>) it.next();
Car key=en.getKey();
Integer value=en.getValue();
//System.out.println("品牌是"+key.getBrand()+"颜色是"+key.getColor()+"价格是"+value);
}
/**
* 通过Iterator遍历写法2
*/
Iterator<Map.Entry<Car, Integer>> entries = map.entrySet().iterator();
while(entries.hasNext()){
Map.Entry<Car, Integer> entry3 = entries.next();
Car key3 = entry3.getKey();
Integer value3 = entry3.getValue();
System.out.println(key3.getBrand()+":"+value3);
}
/**
* 通过Iterator键名遍历
*/
Set keys=map.keySet();
Iterator its=keys.iterator();
while(its.hasNext()){
Car kyy=(Car) its.next();
Integer j=map.get(kyy);
//System.out.println(j);
//System.out.println("品牌是"+kyy.getBrand()+"颜色是"+kyy.getColor()+"价格是"+j);
}
/**
* 最常见也是大多数情况下用的最多的,一般在键值对都需要使用
*/
for(Map.Entry<Car,Integer> entry1 : map.entrySet()){
Car mapKey = entry1.getKey();
Integer mapValue = entry1.getValue();
//System.out.println(mapKey.getBrand()+":"+mapValue);
}
/**
* 在for循环中遍历key或者values,一般适用于只需要map中的key或者value时使用,在性能上比使用entrySet较好;
*/
//key
for(Car key2 : map.keySet()){
//System.out.println(key2.getBrand());
}
//value
for(Integer valuei : map.values()){
//System.out.println(valuei);
}
/**
* 通过键找值遍历,这种方式的效率比较低,因为本身从键取值是耗时的操作
*/
for(Car key3 : map.keySet()){
Integer value = map.get(key3);
//System.out.println(key3.getBrand()+":"+value);
}
java中Map遍历的几种方式
最新推荐文章于 2024-04-18 05:41:33 发布