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

cor*_*ces 1 java loops for-loop arraylist

这是我关于堆栈溢出的第一个问题,但我有一些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");
    }
}
Run Code Online (Sandbox Code Playgroud)

变量/对象和用途:

  • searchFieldListener
    由于显而易见的原因,JTextField的KeyListener称为searchField.
  • query
    要搜索的文本的字符串.

  • 为什么每个人都在循环中使用i?我想这是一种编码传统.
  • nameList
    名称的ArrayList(嗯,duh).
  • searchString
    要搜索的字符串(例如,尝试在searchString中查找查询).
  • iter
    到目前为止for循环的迭代次数.


    再一次,我希望我已经足够清楚了.谢谢!

cod*_*ict 6

你的for循环没有执行的原因是因为循环中使用的条件:

for (i = 0; i == nameList.size(); i++) 
              ^^
Run Code Online (Sandbox Code Playgroud)

由于ArrayList类的size方法返回了您可能想要的元素数
i < nameList.size().