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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

  1. // 创建TreeSet对象
  2. TreeSet<Student> t = new TreeSet<Student>(new Comparator<Student>(){
  3. @Override
  4. public int compare(Student s1, Student s2) {
  5. int num = s1.getAge()-s2.getAge();
  6. num = (num==0)?(s1.getName().compareTo(s2.getName())):num;
  7. return num;
  8. }

  9. } );

  10. // 创建Student对象,将对象存入集合中去
  11. Student s1 = new Student("linqingxia",26);
  12. Student s2 = new Student("zhouxun",33);
  13. Student s3 = new Student("zhangzishoi",26);
  14. Student s4 = new Student("wanglaowu",55);
  15. Student s5 = new Student("linqingxia",26);

  16. //使用TreeSet类存储对象
  17. t.add(s1);
  18. t.add(s2);
  19. t.add(s3);
  20. t.add(s4);
  21. t.add(s5);
  22. //这里的for循环里不加操作表达式,也是可以的吗?怎么会这样?
  23. for(Iterator iter = t.iterator();iter.hasNext();){
  24. System.out.println((iter.next()));
  25. }
复制代码
for循环里不加操作表达式,也是可以的吗?怎么会这样?

评分

参与人数 1黑马币 +3 收起 理由
杨佳名 + 3 淡定

查看全部评分

8 个回复

倒序浏览
是的,while(true) 相当于 for(; ;);
回复 使用道具 举报
for( ;  ; ),什么都不加相当于无限循环
回复 使用道具 举报
相当于 while里加ture  永远循环下去!
回复 使用道具 举报
没有错,就是对的
回复 使用道具 举报
首先:for循环里不加操作表达式是可以的.然后再说说你的代码:for(Iterator iter = t.iterator();iter.hasNext();){
System.out.println((iter.next()));
}
迭代器循环遍历的话,其中的hasNext()和next()方法在遍历的时候相当于公用一个指针,next()每次调用都会将指针指向下一个元素(也就是相当于我们平时写的i++),所以我们才能循环遍历得到所有的元素.否则的话,将会一直是死循环.

评分

参与人数 1技术分 +1 收起 理由
杨佳名 + 1

查看全部评分

回复 使用道具 举报
王小忠 发表于 2014-11-28 18:22
首先:for循环里不加操作表达式是可以的.然后再说说你的代码:for(Iterator iter = t.iterator();iter.hasNex ...

头一次见这样的格式,谢谢你的回答,我明白了!
回复 使用道具 举报
                             学到了  谢谢分享!
回复 使用道具 举报
每天学习一点点,受教了。。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马