如何在java中打破条件并返回数据

时间:2014-02-27 06:01:26

标签: java android arraylist

删除部分内容。现在可能没有必要。

我正在使用以下代码,我的主要意图是如果条件匹配则退出循环并返回预期数据。

在下面的列表中,我获得实际预期列表但无法返回数据,我想要的是什么。我正在返回测试数据值。

    public String getlistdata(){

    String s = "testting data";
     if(!(this.element==null)){
            ListIterator<ElementData> li = this.element.listIterator();
            List<String> list = new ArrayList<String>();;
            while (li.hasNext()) {
                list.add(li.next().getElemType().toString());
            }
            Log.e("LIST", "TEST LIST"+list+"=="+list.size());

            for (String temp : list) {
                System.out.println(temp);
                if (temp.toString().equalsIgnoreCase("group")){
                    s = li.next().getGrpResult();
                      break ;
                }
            }
        }
        return s;

    }

请在此代码中找出我的错误。

编辑:

我解决了以下用户2310289答案的上述问题,但问题是我又有了另一个问题

  

我有问题,如果我在这里有两个或更多组,所有时间都执行了   第一组。如何执行第二次此方法调用下一组。   或第三次第三组。这意味着如果第二次如何开始这个   调用此函数,从第一个groupindex + 1和第三个开始索引   调用此方法第二个groupindex + 1,依此类推。我有很多   在这里混淆。方面提示

     

文字,群组,群组,普通,数字,群组,文字

3 个答案:

答案 0 :(得分:1)

而不是break使用return s

if (temp.toString().equalsIgnoreCase("group")){
                    s = li.next().getGrpResult();
                      return s ;
                }

答案 1 :(得分:0)

只需对if条件进行以下更改,

 if (temp.toString().equalsIgnoreCase("group")){
                    s = li.next().getGrpResult();
                     return s;
    }

答案 2 :(得分:0)

为什么即使打扰将数据添加到本地List也不会重复使用。

<强>更新

另外

首先,代码while (li.hasNext()) {在列表中进行迭代,然后尝试li.next().getGrpResult();将抛出NoSuchElementException - 因为迭代没有下一个元素

 String s = "testing data";
 if(!(this.element==null)){
        ListIterator<ElementData> li = this.element.listIterator();
        while (li.hasNext()) {
            ElementData ed = li.next();
            String temp = ed.getElemType().toString();
            System.out.println(temp);
            if (temp.equalsIgnoreCase("group")){
                 return ed.getGrpResult ();
            }
        }

 }
 return null;

<强>更新

根据您的评论,如果您希望所有匹配ElementData,而不是return ed.getGrpResult();,只需添加到ArrayList myList.add (ed.getGrpResult ());,然后代码将继续循环播放。在方法结束时返回ArrayList