Java return Null 的迭代器
Java Iterator that return Null
我正在尝试使用 Iterator 在 java 中编写一个方法,它会遍历销售商品的一些评论并 return 根据评论的投票返回最有帮助的评论.但是,在根本没有评论的情况下,我希望代码为 return null。但我的问题是下面的代码给了我一个 "no such element exception",我该如何解决?
public Comment findMostHelpfulComment()
{
Iterator<Comment> it = comments.iterator();
Comment best = it.next();
while(it.hasNext())
{
Comment current = it.next();
if(current.getVoteCount() > best.getVoteCount()) {
best = current;
}
}
return best;
}
Comment best = it.next();
如果注释为空,这将不会给您任何此类元素异常。
您需要检查空值,或者在 Comment best = it.next()
之前执行 it.hasNext()
public Comment findMostHelpfulComment() {
Iterator < Comment > it = comments.iterator();
Comment best = new Comment();
while (it.hasNext()) {
Comment current = it.next();
if (current.getVoteCount() > best.getVoteCount()) {
best = current;
}
}
return best;
}
请尝试上面的代码。
与其在声明的时候使用it.next()
,不如用一个空的Comment
对象来声明。通过这样做,它将跳过从 Iterator
中获取数据而不进行检查。
这不会抛出 java.util.NoSuchElementException
。
public Comment findMostHelpfulComment()
{
if (comments.isEmpty()== true){
return null;
}
else{
Iterator<Comment> it = comments.iterator();
Comment best = it.next();
while(it.hasNext())
{
Comment current = it.next();
if(current.getVoteCount() > best.getVoteCount()) {
best = current;
}
}
return best;
}
}
我正在尝试使用 Iterator 在 java 中编写一个方法,它会遍历销售商品的一些评论并 return 根据评论的投票返回最有帮助的评论.但是,在根本没有评论的情况下,我希望代码为 return null。但我的问题是下面的代码给了我一个 "no such element exception",我该如何解决?
public Comment findMostHelpfulComment()
{
Iterator<Comment> it = comments.iterator();
Comment best = it.next();
while(it.hasNext())
{
Comment current = it.next();
if(current.getVoteCount() > best.getVoteCount()) {
best = current;
}
}
return best;
}
Comment best = it.next();
如果注释为空,这将不会给您任何此类元素异常。
您需要检查空值,或者在 Comment best = it.next()
it.hasNext()
public Comment findMostHelpfulComment() {
Iterator < Comment > it = comments.iterator();
Comment best = new Comment();
while (it.hasNext()) {
Comment current = it.next();
if (current.getVoteCount() > best.getVoteCount()) {
best = current;
}
}
return best;
}
请尝试上面的代码。
与其在声明的时候使用it.next()
,不如用一个空的Comment
对象来声明。通过这样做,它将跳过从 Iterator
中获取数据而不进行检查。
这不会抛出 java.util.NoSuchElementException
。
public Comment findMostHelpfulComment()
{
if (comments.isEmpty()== true){
return null;
}
else{
Iterator<Comment> it = comments.iterator();
Comment best = it.next();
while(it.hasNext())
{
Comment current = it.next();
if(current.getVoteCount() > best.getVoteCount()) {
best = current;
}
}
return best;
}
}