Map集合中的遍历方式
方法一 在for-each循环中使用entries来遍历
这是最常见的并且在大多数情况下也是最可取的遍历方式。在键值都需要时使用。
Map<Integer, Integer> map = new HashMap<Integer, Integer>();
for (Map.Entry<Integer, Integer> entry : map.entrySet()) {
System.out.println("Key = " + entry.getKey() + ", Value = " + entry.getValue());
}
方法二 在for-each循环中遍历keys或values。
如果只需要map中的键或者值,你可以通过keySet或values来实现遍历,而不是用entrySet。
该方法比entrySet遍历在性能上稍好(快了10%),而且代码更加干净。
Map<Integer, Integer> map = new HashMap<Integer, Integer>();
//遍历map中的键
for (Integer key : map.keySet()) {
System.out.println("Key = " + key);
}
//遍历map中的值
for (Integer value : map.values()) {
System.out.println("Value = " + value);
}
方法三使用Iterator遍历
使用泛型:
Map<Integer, Integer> map = new HashMap<Integer, Integer>();
Iterator<Map.Entry<Integer, Integer>> entries = map.entrySet().iterator();
while (entries.hasNext()) {
Map.Entry<Integer, Integer> entry = entries.next();
System.out.println("Key = " + entry.getKey() + ", Value = " + entry.getValue());
}
不使用泛型:
Map map = new HashMap();
Iterator entries = map.entrySet().iterator();
while (entries.hasNext()) {
Map.Entry entry = (Map.Entry) entries.next();
Integer key = (Integer)entry.getKey();
Integer value = (Integer)entry.getValue();
System.out.println("Key = " + key + ", Value = " + value);
}
第一种方式:for循环
//遍历List集合里的内容 只对List有效 因为List是有序的集合
for(int i = 0;i<list.size();i++){
System.out.println(list.get(i).id+" "+list.get(i).name);
}
第二种方式:iterator迭代器
//迭代器方式 弱点是只能从头到尾 兼容性最好 适合于Collection集合
Iterator<Student> it = list.iterator();
while(it.hasNext()){//hasNext()判断有没有下一个元素
Student st = it.next();
System.out.println(st.id+" "+st.name);
}
第三种方式:for each
//for each 方式本质还是迭代器 每循环一次 放的就是当前对象的地址 适合List Set Map
//只能在JK1.5以上使用 兼容性不好 Set最好用这种
for(Student t:list){
System.out.println(t.id+" "+t.name);
}
Set集合
遍历Set集合和List的方式一样 不过不能使用for 循环来遍历Set集合 因为Set集合中没有get()方法
//遍历Set集合
Set<Student> set = new HashSet<Student>();
set.add(new Student(2,"dfd"));
set.add(new Student(4,"gdfg"));
set.add(new Student(1,"sadf"));
set.add(new Student(8,"df"));
for(Student t:set){
System.out.println(t.id+" "+t.name);
}
}
}