2013-10-24 97 views
0

我正在檢索地址表GeoCoderGoogleMapApi並在將結果提交給Spinner對象之前,我需要從列表中刪除所有空條目。從ArrayList中刪除空條目

我嘗試以下兩種方法,但他們都不做任何區別:

locs.removeAll(Arrays.asList("", null)); 
locs.removeAll(Collections.singleton(null)); 

-

private List<Address> getAddress(double latitude, double longitude,int maxResults) { 
    Geocoder gCoder = new Geocoder(getApplicationContext(),Locale.getDefault()); 
    try { 
     locs = gCoder.getFromLocation(latitude, longitude, maxResults); 
     locs.removeAll(Arrays.asList("", null)); 
     //locs.removeAll(Collections.singleton(null)); 
    } catch (IOException e) { 
     e.printStackTrace(); 
    } 

    return locs; 

} 
+1

我認爲第二種方式當然應該起作用。你有沒有單獨的列表嘗試它? –

回答

0

試試這個

List locs = new ArrayList(); 
    locs.add(""); 
    locs.removeAll(Arrays.asList("", null)); 
    System.out.println(locs.size()); 

輸出

0 

locs.add(""); 
    locs.removeAll(Collections.singleton(null)); 
    System.out.println(locs.size()); 

輸出

1 

是有區別的

0

通過名單只是重複使用此代碼

for (int i = 0; i < locs.size(); i ++){ 
     if (locs.get(i) == null){ 
      locs.remove(i); 
      i --; 
     } 
    } 
0

for(int i=0;i<list.size();i++) { if(list.get(i)==null||list.get(i).equals(""))// in case of string only otherwise only one枝ck就足夠了 { list.remove(i); i--; } `}