我一直在做一项工作,当我尝试运行它时,我的ide冻结了,我必须使用任务管理器来关闭它.
任何想法为什么?我知道它与迭代器和我正在使用的循环有关
任何人都可以发现它吗?下面是servlet代码的一部分
try {
List<FileItem> fields = upload.parseRequest(request);
Iterator<FileItem> it = fields.iterator();
//starting conversion from file to sample
//creating a container to hold the samples
ArrayList<sample> samplelist = new ArrayList();
while (it.hasNext()) {
sample c = new sample();
FileItem fileItem = it.next();
c.setFileName(fileItem.getName());
c.setPayload(fileItem.getString());
samplelist.add(c);
}
//looping through uploaded samples to split code into lines
for (int i = 0; i < samplelist.size(); i++) {
sample current = new sample();
current = samplelist.get(i);
//splitting whole code block into lines based on ;
String[] temp;
temp = current.getPayload().split(";");
//going through split lines and adding them to the sample's rawcode
//arraylist after checking for for loops
for (int j = 0; j < temp.length; j++) {
// current.Raw_Code.add(temp[j]);
String current_line = temp[j];
current.Raw_Code.add(current_line);
}
}
//testing
System.out.print("starting testing");
for (int i = 0; i < samplelist.size(); i++) {
sample current = new sample();
current = samplelist.get(i);
System.out.print("File name <br/>");
current.getFileName();
System.out.print("lines detected <br/>");
Iterator itr = current.Raw_Code.iterator();
//this while loop started to cause the problem
while(itr.hasNext()){
System.out.print("x");
}
}
} catch (FileUploadException e) {
e.printStackTrace();
}
out.close();
return;
Run Code Online (Sandbox Code Playgroud)
Mar*_*ach 10
就在这儿:
while(itr.hasNext()){
System.out.print("x");
}
Run Code Online (Sandbox Code Playgroud)
你没有调用itr.next()所以迭代器不是迭代.:)添加循环itr.next()内部while将纠正问题.
| 归档时间: |
|
| 查看次数: |
402 次 |
| 最近记录: |