2013-10-14 20 views
0

알 수없는 문자열 요소가있는 arraylist와 ListView이 있습니다. 이 문자열 항목 하나 하나를 변경/수정하고 싶습니다. 문제는 사용자가 변경할 수 있기 때문에 얼마나 많은 항목이 있는지 알지 못한다는 것입니다. arraylist의 모든 문자열 요소를 변경하는 방법은 무엇입니까?

나는 문자열을 받아 문자열을 반환하는 translate 기능을 가지고있다. 내가 뭘 원하는

arraylistelement1 = translate(arraylistelement1); 
arraylistelement2 = translate(arraylistelement2); 
... 

하고 새로운 문자열로 listview의 ArrayList를 다시 채 웁니다입니다.

어떻게해야합니까? 목록을 통해

+0

사용가. – nhaarman

+0

요소의 수를 모른 채 어떻게해야합니까? 추천 –

+0

뭔가 '(INT에 대한 I = 0; i가 mArrayList.size() "; 나는 ++) {...}'를 – nhaarman

답변

2

으로 반복하고 다음 새 값으로 원래 목록의 내용을 대체 원본과 번역 옵션의 새 목록을 만들 수 있습니다. iterating하는 동안 대체 할 경우 ConcurrentModificationExceptions 얻을 것이다.

+1

ArrayList를 온도 = 새로운 ArrayList를 (); (문자열 문자열 : 문자열) { temp.add (translate (string)); } 문자열 = 임시; – sddamico

+0

예제 코드를 제공해 주시겠습니까? –

+0

@ MuratKaya 그는 그냥 했어! – Simon

1

사용 ListIterator.set : 대한 루프

public static void main(String[] args) { 
    List<String> list = new ArrayList<>(Arrays.asList("s0", "s1", "s2")); 

    ListIterator<String> iter = list.listIterator(); 

    while (iter.hasNext()) 
     iter.set(translate(iter.next())); 

    for (String element : list) 
     System.out.println(element); 
} 

public static String translate(String element) { 
    return element + " " + Math.random(); 
} 
관련 문제