2013-06-14 2 views
1

У меня есть ArrayList, каждый UIToto содержит (String идентификатора, имя String, String информацию) , например (4546-fdsf4545sfd-dfs545, Тити, женщину) (dqs4d65q4 -45d4s54545sfd-dfss54545, туту, мужской)Хочет, чтобы получить элемент в ArrayList со списком идентификаторов

у меня есть список идентификаторов, как

String ids = "dqs4d65q4-45d4s54545sfd-dfss54545, 4545-dsqd45-dqs,4d5s44-ss4-dqsd"; 

для каждого ид, я получить идентификатор и я хочу, чтобы получить UIToto в моей ArrayList:

ArrayList<UIToto> totoList = reteieveTotoList(); 
String[] ids = "dqs4d65q4-45d4s54545sfd-dfss54545, 4545-dsqd45-dqs,4d5s44-ss4-dqsd"; 
for(int i=0; i <= ids.length; i++) { 
    System.out.println(("id = " + ids[i]); 
    //don't work because it's not the index but the id ... 
UIToto response = totoList.get(Integer.parseInt(ids[1])); 
System.out.println("response = " + response); 
} 

Возможно ли это?

Спасибо!

+0

'Integer.parseInt (идентификаторы [1])' 'должны поднять NumberFormatException' –

+0

Это не похоже, что это будет даже скомпилировать – Sello

ответ

2

Попробуйте

ArrayList<UIToto> totoList = reteieveTotoList; 
ArrayList<UIToto> resultList= new ArrayList<UIToto>(); 
String[] ids = {"dqs4d65q4-45d4s54545sfd-dfss54545", 
       "4545-dsqd45-dqs,4d5s44-ss4-dqsd"}; 
for(int i=0; i<ids.length; i++) { 
    for(UIToto uIToto : totoList) { 
     if(uIToto.getId().equals(ids[i])) { 
      resultList.add(uIToto);  
     } 
    } 
} 
0

В зависимости от вашего USECASE, карты с строковым идентификатором, как ключ может быть более изящным тогда ArrayList, когда вам нужно найти объект в коллекции на основе одного из значений объекта ,

public static void main(String argv) { 
    Map<String, UIToto> totoMap = getTotoMap(); 
    String[] ids = {"dqs4d65q4-45d4s54545sfd-dfss54545", "4545-dsqd45-dqs,4d5s44-ss4-dqsd"}; 
    for(int i=0; i <= ids.length; i++) { 
     System.out.println(("id = " + ids[i])); 

     UIToto response = totoMap.get(ids[i]); 
     System.out.println("response = " + response); 
    } 
} 

//Example how to Construct the map with the String as ID. 
//Ideally the map would be constructed without first creating the list 
public Map<String,UIToto> getTotoMap() { 
    Map<String, UIToto> totoMap = new HashMap<String, UIToto>(); 
    List<UIToto> totoList = reteieveTotoList(); 
    for (UIToto uiToto :totoList) { 
     totoMap.put(uiToto.getId(), uiToto); 
    } 
} 
Смежные вопросы