Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/367.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
尝试搜索ArrayList时未执行Java-For循环_Java_Loops_For Loop_Arraylist - Fatal编程技术网

尝试搜索ArrayList时未执行Java-For循环

尝试搜索ArrayList时未执行Java-For循环,java,loops,for-loop,arraylist,Java,Loops,For Loop,Arraylist,这是我关于堆栈溢出的第一个问题,但我有一些Java方面的经验。我现在正在制作一个Java应用程序(575行,正在计数!),并试图在ArrayList中搜索字符串。但是我不希望它是精确的让我澄清一下:我希望遍历每个ArrayList元素,并在该字符串中搜索另一个字符串。如果在ArrayList元素中找到字符串,(目前),我希望将其打印到控制台。我希望我已经说得够清楚了。 以下是相关代码。定义了所有变量并编译了代码,只是没有输出(来自搜索函数)。我很确定这是因为for循环没有执行,但我不明白为什么

这是我关于堆栈溢出的第一个问题,但我有一些Java方面的经验。我现在正在制作一个Java应用程序(575行,正在计数!),并试图在ArrayList中搜索字符串。但是我不希望它是精确的让我澄清一下:我希望遍历每个ArrayList元素,并在该字符串中搜索另一个字符串。如果在ArrayList元素中找到字符串,(目前),我希望将其打印到控制台。我希望我已经说得够清楚了。
以下是相关代码。定义了所有变量并编译了代码,只是没有输出(来自搜索函数)。我很确定这是因为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循环未执行的原因是循环中使用的条件:

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循环,并将研究和付诸实践。啊..听说过这些都是专门为环路设计的,并将研究和付诸实践。