尝试搜索ArrayList时未执行Java-For循环
这是我关于堆栈溢出的第一个问题,但我有一些Java方面的经验。我现在正在制作一个Java应用程序(575行,正在计数!),并试图在ArrayList中搜索字符串。但是我不希望它是精确的让我澄清一下:我希望遍历每个ArrayList元素,并在该字符串中搜索另一个字符串。如果在ArrayList元素中找到字符串,(目前),我希望将其打印到控制台。我希望我已经说得够清楚了。尝试搜索ArrayList时未执行Java-For循环,java,loops,for-loop,arraylist,Java,Loops,For Loop,Arraylist,这是我关于堆栈溢出的第一个问题,但我有一些Java方面的经验。我现在正在制作一个Java应用程序(575行,正在计数!),并试图在ArrayList中搜索字符串。但是我不希望它是精确的让我澄清一下:我希望遍历每个ArrayList元素,并在该字符串中搜索另一个字符串。如果在ArrayList元素中找到字符串,(目前),我希望将其打印到控制台。我希望我已经说得够清楚了。 以下是相关代码。定义了所有变量并编译了代码,只是没有输出(来自搜索函数)。我很确定这是因为for循环没有执行,但我不明白为什么
以下是相关代码。定义了所有变量并编译了代码,只是没有输出(来自搜索函数)。我很确定这是因为for循环没有执行,但我不明白为什么
//the keylistener that calls the search() function, attached to a JTextField that the query is entered into
class searchFieldListener implements KeyListener {
searchFieldListener() {
}
public void keyTyped(KeyEvent event) {
if (event.getID() == KeyEvent.KEY_TYPED) {
query = searchField.getText()+Character.toString(event.getKeyChar());
System.out.println(query);
for (i = 0; i == nameList.size(); i++) {
search(query, i);
}
}
}
public void keyReleased(KeyEvent event) {
}
public void keyPressed(KeyEvent event) {
}
}
//the troublesome search() function
void search(String query, int iter) {
searchString = nameList.get(iter);
System.out.println(searchString);
if (searchString.indexOf(query) != -1) {
System.out.println(Integer.toString(iter));
} else {
System.out.println("not found \n");
}
}
变量/对象和用途:
- searchFieldListener
JTextField的KeyListener之所以称为searchField,原因很明显 - 查询
要搜索的文本的字符串 - i
为什么每个人都在循环中使用i?我想这是一种编码传统 - 姓名列表
名称的数组列表(嗯,duh) - 搜索字符串
要在中搜索的字符串(如中所示,尝试在searchString中查找查询) - iter
到目前为止,for循环已经经历了多次迭代。
我再次希望我已经足够清楚了。谢谢李>
for (i = 0; i == nameList.size(); i++)
^^
由于ArrayList类的方法返回您可能想要的元素数i
。for循环未执行的原因是循环中使用的条件:
for (i = 0; i == nameList.size(); i++)
^^
for (i = 0; i == nameList.size(); i++)
由于ArrayList类的方法返回您可能想要的元素数i
for (i = 0; i == nameList.size(); i++)
应该是
for (i = 0; i < nameList.size(); i++)
for(i=0;i
不确定是否需要<或
应该是
for (i = 0; i < nameList.size(); i++)
for(i=0;i
不确定您是否需要在for循环中输入一个拼写错误。这不应该:
for (i = 0; i == nameList.size(); i++) {
像这样:
for (i = 0; i < nameList.size(); i++) {
for(i=0;i
您的for循环中有一个输入错误。这不应该:
for (i = 0; i == nameList.size(); i++) {
像这样:
for (i = 0; i < nameList.size(); i++) {
for(i=0;i
几个正确答案,但缺少一个方面:
for (i = 0; i < nameList.size(); i++)
这种更简单的语法是a)更不容易出错,b)迭代许多不同数据结构(包括数组和集合)的常用方法
在内部,这是此代码的快捷方式:
for(Iterator<String> it = strings.iterator(); it.hasNext();){
String s = it.next();
// your code here
}
for(Iterator it=strings.Iterator();it.hasNext();){
字符串s=it.next();
//你的代码在这里
}
几个正确答案,但缺少一个方面:
for (i = 0; i < nameList.size(); i++)
这种更简单的语法是a)更不容易出错,b)迭代许多不同数据结构(包括数组和集合)的常用方法
在内部,这是此代码的快捷方式:
for(Iterator<String> it = strings.iterator(); it.hasNext();){
String s = it.next();
// your code here
}
for(Iterator it=strings.Iterator();it.hasNext();){
字符串s=it.next();
//你的代码在这里
}
谢谢!令人惊讶的是,人们的回复速度如此之快!对所有其他回答的人也是如此,我真的非常感谢。谢谢!令人惊讶的是,人们的回复速度如此之快!对所有回答的人也是如此,我真的非常感谢。啊..听说过这些特殊的for循环,并将研究和付诸实践。啊..听说过这些都是专门为环路设计的,并将研究和付诸实践。