运行后出现NoSuchElementException,没有元素可以迭代;可以帮我看看吗?
importjava.util.*;publicclassYSH{publicstaticvoidmain(String[]args){TreeSettr=newTree...
import java.util.*;
public class YSH {
public static void main(String[] args){
TreeSet tr =new TreeSet();
Set t =new TreeSet();
for(int i =1;i<=100;i++){
tr.add(i);
}
int n=1;
int m=1;
int h=0;
while(tr.size()!=1){
int l=tr.size();
n=1;
Iterator it =tr.iterator();
while(h!=0){
for(int i=1;i<14-h;i++){
it.hasNext();
it.next();}
it.hasNext();
t.add(it.next());
n=h;
}
while(n<l){
for(int i=1;n<l&&i<14;i++){
it.hasNext();
it.next();
n++;
m++;
System.out.println(n); // 为什么最后结果是94,l不是等于100吗?
System.out.println(m);
}
it.hasNext();
t.add(it.next());
h=m;
System.out.println(n);
System.out.println(h);
m=1;
}
tr.removeAll(t);
t.clear();
}
}
} 展开
public class YSH {
public static void main(String[] args){
TreeSet tr =new TreeSet();
Set t =new TreeSet();
for(int i =1;i<=100;i++){
tr.add(i);
}
int n=1;
int m=1;
int h=0;
while(tr.size()!=1){
int l=tr.size();
n=1;
Iterator it =tr.iterator();
while(h!=0){
for(int i=1;i<14-h;i++){
it.hasNext();
it.next();}
it.hasNext();
t.add(it.next());
n=h;
}
while(n<l){
for(int i=1;n<l&&i<14;i++){
it.hasNext();
it.next();
n++;
m++;
System.out.println(n); // 为什么最后结果是94,l不是等于100吗?
System.out.println(m);
}
it.hasNext();
t.add(it.next());
h=m;
System.out.println(n);
System.out.println(h);
m=1;
}
tr.removeAll(t);
t.clear();
}
}
} 展开
2个回答
展开全部
你这明显写的有问题啊抛NoSuchElementException就是因为Iterator没有next了
在Interator的hasNext和next不是这么用的
在你用
it.next();的时候一定要用it.hasNext()来检验是否有下一个元素也就是
if(it.hasNext()){
it.next()
}
hasNext()返回的是一个boolean type 用来判断是否有下一个元素
你把所有用到it.next()的地方+上hasNext()就不会抛NoSuchElementException异常了
至于为什么是94不是100不知道你的题目不能解答。。用debug去查赋值把
为什么没有达到预期效果肯定是你编错了。。看你的代码就知道有很多很多问题。。汗
但不知道你的题目不能给你改。。。。
在Interator的hasNext和next不是这么用的
在你用
it.next();的时候一定要用it.hasNext()来检验是否有下一个元素也就是
if(it.hasNext()){
it.next()
}
hasNext()返回的是一个boolean type 用来判断是否有下一个元素
你把所有用到it.next()的地方+上hasNext()就不会抛NoSuchElementException异常了
至于为什么是94不是100不知道你的题目不能解答。。用debug去查赋值把
为什么没有达到预期效果肯定是你编错了。。看你的代码就知道有很多很多问题。。汗
但不知道你的题目不能给你改。。。。
来自:求助得到的回答
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询