java集合遍历方式&&iterator遍历顺序

List集合

总结:1.利用get(indexof)使用普通for循环遍历;2.使用增强for循环进行遍历(低层用iterator实现的);3.使用iterator进行遍历

  • 使用iterator遍历ArrayList的时候,遍历顺序是按照数组下标从小到大依次遍历
  • 使用iterator遍历LinkedList的时候,遍历顺序是按照链表结构从头到尾依次遍历
  • 使用普通for循环进行遍历
for (int i = 0; i < list.size(); i++) {
	ObjectName s = (ObjectName)list.get(i);
    System.out.println(s.getx()+"  "+s.getxx()+"  "+s.getxxx());
}
  • 使用增强for循环进行遍历
for (ObjectName s : list) {
	System.out.println(s.getx()+"  "+s.getxx()+"  "+s.getxxx());
}
  • 使用iterator进行遍历
Iterator<ObjectName> iter = list.iterator();
while (iter.hasNext()) {
	ObjectName s = (ObjectName) iter.next();
	System.out.println(s.getx()+"  "+s.getxx()+"  "+s.getxxx());
}

Set集合

总结:1. 使用增强for;2. 使用iterator进行遍历。(注意不能用普通for进行遍历,因为set集合没有顺序概念,所以没有get(indexof)方法

  • 使用iterator遍历TreeSet时,遍历顺序是树的中序遍历(即按照元素从小到大依次遍历)
  • 使用iterator遍历HashSet时,遍历顺序是:按照数组下标从小到大进入桶内,如果桶是红黑树结构则按照树的中序遍历输出,如果桶是链表则按照从头到尾的顺序遍历。
  • 使用增强for循环遍历(低层还是用iterator实现的)
for (Object obj : stuSet) {
	StudentDemo sDemo = (StudentDemo)obj;
	System.out.println("姓名:"+sDemo.getStuName()+"-学号:"+
		sDemo.getStuId()+"-成绩:"+sDemo.getStuGrade());
}
  • 使用iterator进行遍历
Iterator iterator = stuSet.iterator();
while (iterator.hasNext()) {
	StudentDemo stuIt = (StudentDemo)iterator.next();
	System.out.println("姓名:"+stuIt.getStuName()+"-学号:"+
		stuIt.getStuId()+"-成绩:"+stuIt.getStuGrade());	
}	

Map集合

总结:

  1. 使用增强for循环遍历。利用Map 的 entrySet()方法获取元素
  2. 使用增强for循环单独遍历key或者value。利用Map的keySet()方法获取键的集合;或者利用Map 的values()方法获取值的集合
  3. 使用增强for循环利用get(key)遍历。先利用Map的keySet()方法获取键的集合,遍历键集合的时候利用Map的get(key)方法获取其对应的值
  4. 使用iterator遍历

iterator遍历顺序和上述Set遍历顺序一样。

  • 使用增强for循环遍历。利用Map 的 entrySet()方法获取元素
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循环单独遍历key或者value
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);
}
  • 使用增强for循环利用get(key)遍历
Map<Integer, Integer> map = new HashMap<Integer, Integer>();
for (Integer key : map.keySet()) {
    Integer value = map.get(key);
    System.out.println("Key = " + key + ", 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());
}

你可能感兴趣的:(笔记,java,开发语言,后端)