Цикл не работает так, как я хочу - PullRequest
0 голосов
/ 19 мая 2011


У меня очень незначительная проблема, которую я не могу понять.Я пытаюсь извлечь данные, основанные на типе значения из ArrayList> и поместить его в другой ArrayList.Проблема в том, что цикл for запускается только один раз, и в этом случае он мне нужен для обхода всего массива, а затем для помещения данных в массив unSuppressedData.
Ниже приведен цикл 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;
                }
            }
        }
    }

suppressedStatus - это массив строк.
utilData - это массив данных, из которого я хочу извлечь данные
unSuppressedData - это массив данных, в который я хочу поместить данные

.в эту строку кода:

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

Но мне нужно, чтобы эта строка проверила, есть ли у моего unSuppressdData данные, если нет, то добавит данные из arraylist в поле AvailableData в массив UnSuppressedData.Может ли быть так, что я пишу этот кусок кода неправильно?Цените любые идеи, проливаемые на это.

1 Ответ

0 голосов
/ 19 мая 2011

Хороший тип коллекции для такого рода вещей - LinkedHashSet. Поскольку это набор, каждый элемент может быть добавлен только один раз. Будучи хэшем, тест содержит быстро. Будучи «связанным», результирующий набор повторяется в порядке вставки.

...