我的Java代码没有进入For循环来检索ArrayList元素

时间:2014-08-14 12:12:07

标签: java for-loop arraylist

我正在尝试使用ArrayList中的For loopJava元素中检索某些特定数据。

但每当我运行代码时,它只是跳过循环。

    String sel=(String)jComboBox2.getSelectedItem();

    for(int i=0;i<arrTrans.size(); i++){
        if(arrTrans.get(i).date.equals(sel)){
        descView.setText(arrTrans.get(i).description);
        typeView.setText(arrTrans.get(i).type);
        amountView.setText(arrTrans.get(i).amount);
                }

在调试过程中,我跟踪arrTrans.size()结束它不为零,因为我不断添加新的Lists。我想知道为什么会这样?

提前感谢您的帮助!

6 个答案:

答案 0 :(得分:5)

您需要更改

for(int i=0;i>arrTrans.size(); i++){

for(int i=0;i<arrTrans.size(); i++){

arrTrans.size()是一个集合的大小arrTrans.size()>=0。然后i0开始,因此您的当前代码不会进入for循环,因为i>arrTrans.size()不匹配。

编辑:

现在您已将问题编辑到for(int i=0;i<arrTrans.size(); i++),如果您仍然遇到同样的问题arrTrans.size()0

答案 1 :(得分:0)

for(int i=0;i>arrTrans.size(); i++)?当然你的意思是 - for(int i=0;i<arrTrans.size(); i++)。如果arrTrans的大小为零,则它不会进入循环。

答案 2 :(得分:0)

在for循环的条件部分使用less than代替greater than 写下这个for(int i=0;i<arrTrans.size(); i++){

编写完整的代码,如

String sel=(String)jComboBox2.getSelectedItem();

    for(int i=0;i<arrTrans.size(); i++){   //change is needed just here
        if(arrTrans.get(i).date.equals(sel)){
        descView.setText(arrTrans.get(i).description);
        typeView.setText(arrTrans.get(i).type);
        amountView.setText(arrTrans.get(i).amount);
                }

答案 3 :(得分:0)

由于语句i>arrTrans.size(),它会跳过循环。 i等于0,因此对于要评估的循环,arrTrans.size()必须小于0。 因此,arraylist不能具有负大小 循环被跳过。将i>arrTrans.size()更改为i<arrTrans.size()以使其有效。

答案 4 :(得分:0)

更改

for(int i=0;i>arrTrans.size(); i++)

for(int i=0;i<arrTrans.size(); i++)

你误解了for循环中间的条件:它并不意味着&#34;虽然我的条件不是是真的&#34;,但它意味着&#34;当我的情况< strong>是 true&#34;

从未使用您输入的内容执行循环。 arrTrans.length永远不会给你一些低于0的东西,因为ArrayList的长度为0,如果它是空的。

编辑:如果对于for循环条件不是问题,那么可能是ArrayList的问题。尝试将i<arrTrans.size()替换为i<arrTrans.toArray().length,这可能会有所帮助

答案 5 :(得分:0)

实际上,如果你在Arraylist中有一些任何元素,它可能就是你的

// if(arrTrans.get(i).date.equals(sel)){

这种情况并不令人满意,也没有显示任何结果。