for循环不按我想要的方式工作

时间:2011-05-19 05:10:37

标签: android for-loop arraylist hashtable


我有一个非常小的问题,我似乎无法弄清楚。我正在尝试根据ArrayList中的一种值提取数据>并将其放入另一个ArrayList。问题是for循环只运行一次,在这种情况下我需要它遍历整个数组,然后将数据放入unSuppressedData arraylist。
以下是for循环:

  for (int x = 0; x < suppressedStatus.length; x++) {
    for (int i = 0; i < availData.size(); i++) {
        Hashtable<String,String> checkAvail = availData.get(i);
        String itemStatus = checkAvail.get("loanStatus");
        if (unSuppressedData.contains(checkAvail) == false) {
            if (!(itemStatus.equals(suppressedStatus[x]))) {
                Log.d("Item Status", itemStatus);
                Log.d("Suppressed Status", suppressedStatus[x]);
                unSuppressedData.add(checkAvail);
                //break;
                }
            }
        }
    }

suppressStatus是一个String数组
availData是我想从中提取数据的arraylist unSuppressedData是我想要将数据放在

中的arraylist

我认为它只运行一次是由于这行代码:

 if (unSuppressedData.contains(checkAvail) == false) {

但是我需要这一行来检查我的unSuppressdData是否有数据,如果没有则会将availData arraylist中的数据添加到unSuppressedData arraylist中。

难道我错误地写了这段代码吗?感谢对此的任何见解。

1 个答案:

答案 0 :(得分:0)

这种东西的好收集类型是LinkedHashSet。因为它是一个集合,所以每个元素只能添加一次。作为哈希,包含测试很快。被“链接”的结果集按插入顺序迭代。