2013-12-25 3 views
0

У меня есть переменная HashMap, как этотполучения четного или нечетное значения из ArrayList <HashMap <String, String >> в андроиде

ArrayList<HashMap<String, String>> myfullvalue; 

этой карта, заполненная все мои значения из таблиц. На этой карте есть поле с уникальным номером. теперь я просто хочу, чтобы получить еще и нечетные значения от «myfullvalues» базы на «Id» и сделать два друга один, как:

ArrayList<HashMap<String, String>> myevenvalue; 

и

ArrayList<HashMap<String, String>> myoddvalue; 

для одного значения я использовал это:

if (Integer.parseInt((myevenvalue.get(0).get("id"))) & 1 == 0) { even... } else { odd... } 

но не знаю, как это сделать, назначив его новому массиву.

+0

Первое, что бросается в глаза: вы применить оператор побитового в строку 'myevenvalue.get (0) .get ("ID")) & 1 = = 0'. –

+0

о право. я починил это . thanks –

+0

В чем проблема? Что вы подразумеваете под _ «не знаете, как это сделать, назначив его новому массиву один» _? –

ответ

3

вы можете использовать % оператор найти чет/нечет

попробуйте этот код

for(HashMap<String, String> : myevenvalue){ 

if (Integer.parseInt((myevenvalue.get(0).get("id"))) % 2 == 0) 
{ even... } 
else { odd... } 

} 
+0

Спасибо, как я могу это сделать для всех значений в массиве? как отфильтровать все, даже один, и назначить его новому массиву? –

+0

@ Андре Марков ссылается на аннотацию. –

+0

Большое спасибо за то, что делают трюки, но не могли принять более одного ответа :( –

1

Вот полный ответ:

Шаг 1) Не забудьте инициализировать ArrayLists.

ArrayList<HashMap<String, String>> myevenvalue = new ArrayList<HashMap<String, String>>(); 
ArrayList<HashMap<String, String>> myoddvalue = new ArrayList<HashMap<String, String>>(); 

Шаг 2) петли через myfullvalue список и добавлять элементы на основе четным или нечетным.

for(HashMap<String, String> map : myfullvalue) { 
    int id = Integer.parseInt(map.get("id")); 
    if(id % 2 == 0) { 
     myevenvalue.add(map); 
    } else { 
     myoddvalue.add(map); 
    } 
} 
+0

спасибо, что это было :) –

1

Используйте этот код: -

for (HashMap<String, String> hashMap : myfullvalue) { 

     if (Integer.parseInt(hashMap.get("id")) % 2 == 0) { 
      myevenvalue.add(new HashMap(hashMap)); 
     } else { 
      myoddvalue.add(new HashMap(hashMap)); 
     } 
    } 
Смежные вопросы