A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© xiaote0225 中级黑马   /  2015-9-22 00:50  /  292 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

集合有那么多种,遍历方式都有哪些?他们的应用情形是什么?

1 个回复

倒序浏览
public class Test {

public static void main(String[] args) {
  //范型  避免因类型强转而产生的错误
  List<Student> list = new ArrayList<Student>();
  list.add(new Student(1,"dfd"));
  list.add(new Student(4,"hfg"));
list.add(new Student(2,"dsf"));
list.add(new Student(8,"fgfg"));

第一种方式: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集合和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);
  }
   }
}
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马