2013-06-16 2 views
8
public class ArrayListTest { 

    public static void main(String[] args) { 
     ArrayList al=new ArrayList(); 
     al.add(""); 
     al.add("name"); 
     al.add(""); 
     al.add(""); 
     al.add(4, "asd"); 
     System.out.println(al); 
    } 
} 

O/P [, 이름,,, ASD] 욕망 O/P [이름, ASD]현명한

답변

30

당신은 removeAll(Collection<?> c) 사용할 수 있습니다

도 에 지정된 컬렉션

al.removeAll(Arrays.asList(null,"")); 

null를 모든 요소를 ​​제거합니다를 포함하는이 컬렉션의 모든 요소를 ​​삭제합니다 또는 List에서 ""과 같습니다.

출력 : 목록을 통해

[name, asd] 
+0

감사합니다. –

0

당신은 값으로 개체를 제거 할 수 있습니다 인덱스를 제거 ArrayList.Without에서 빈 항목을 제거하는 방법 .

while(al.remove("")); 
+0

예. 그러나 첫 번째 빈 공간 만 제거합니다. remove ("") 메소드를 사용하면 ArrayList의 모든 빈 값이 제거됩니다. –

+0

while 루프를 사용하십시오. 제거 할 항목이 있으면 true를 반환합니다. 내 업데이트를 참조하십시오. – Devolus

0

반복 처리, 각 값을 읽어 빈 문자열 ""과 비교하고 있다는 것입니다 경우, 제거 :

Iterator it = al.iterator(); 
while(it.hasNext()) { 
    //pick up the value 
    String value= (String)it.next(); 

    //if it's empty string 
    if ("".equals(value)) { 
     //call remove on the iterator, it will indeed remove it 
     it.remove(); 
    } 
} 

또 다른 옵션은 호출하는 것입니다 목록에 빈 문자열이있는 동안 목록의 remove() 메서드는 다음과 같습니다.

while(list.contains("")) { 
    list.remove(""); 
} 
0
List<String> al=new ArrayList<String>(); 
................... 

for(Iterator<String> it = al.iterator(); it.hasNext();) { 
    String elem = it.next(); 
    if ("".equals(elem)) { 
     it.remove(); 
    } 
} 

본인은이 코드를 주석으로 작성하지 않습니다. 너 혼자 공부해야 해. 모두 세부 정보를 확인하십시오.