我输入系统打印输出以查看问题所在,而2和7是在无限循环中不断重复的两个。这部分代码假设搜索列表并找到用户放入的匹配项,但每次使用搜索时,GUI都会冻结或陷入无限循环。谁能帮我解决这个问题?
这是我的代码:
if (whichOne.equals("Search"))
{
System.out.println("1");
String[] results = new String [5];
int count = 1;
list.moveCursorToRear();
int last = list.cursor;
list.resetCursor();
while(list.hasNext() || list.cursor == last)
{
int found = list.search(searchField.getText());
String result = list.spaces[found].getData();
System.out.println("2");
if(current != found)
{
list.stepCursorBack();
System.out.println("3");
if(list.cursor == list.head)
{
results[count] = result;
System.out.println(results[count]);
list.spaces[current].setLink(list.spaces[found].getLink());
count++;
System.out.println("4");
}
else
{
results[count] = result;
System.out.println(results[count]);
list.spaces[current].setLink(list.spaces[list.cursor].getLink());
count++;
System.out.println("5");
}
list.getNext();
System.out.println("6");
}
else
{
//break;
//System.exit(0);
list.hasNext();
System.out.println("7");
}
}
答案 0 :(得分:1)
else
{
//break;
//System.exit(0);
list.hasNext();
System.out.println("7");
}
我怀疑你想要list.getNext()
,而不是hasNext()
。
但是,如果没有更多代码 - 尤其是有关此list
的更多信息,可能无法给出明确的答案。