2013-06-16 34 views

Trả lời

30

Bạn có thể sử dụng removeAll(Collection<?> c):

Loại bỏ tất cả các yếu tố của bộ sưu tập này cũng được chứa trong thu quy định

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

Điều này sẽ loại bỏ tất cả các yếu tố đó là null hoặc bằng số "" trong số List của bạn.

Output:

[name, asd] 
+0

cảm ơn bạn, điều này đã giúp –

0

Bạn có thể loại bỏ một đối tượng theo giá trị .

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

có, nhưng nó sẽ chỉ xóa không gian trống đầu tiên, cách sử dụng phương thức remove ("") để tất cả giá trị trống từ ArrayList sẽ bị xóa? –

+0

Sử dụng vòng lặp while. Khi có thứ gì đó cần xóa, 'true' được trả về. Xem cập nhật của tôi. – Devolus

0

lặp trên danh sách, đọc mỗi giá trị, so sánh nó với một chuỗi rỗng "" và nếu nó là, loại bỏ nó:

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(); 
    } 
} 

lựa chọn khác là để gọi Phương thức remove() của Danh sách trong khi có các chuỗi rỗng trong danh sách:

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(); 
    } 
} 

Tôi không nhận xét mã này. Bạn nên học từ chính nó. Hãy chú ý trên tất cả các chi tiết.

Các vấn đề liên quan