Удаление пустых записей из ArrayList
Я получаю форму адреса GeoCoder
GoogleMapApi и перед передачей результата в Spinner
Мне нужно удалить все нулевые записи из списка.
Я попробовал следующие два способа, но ни один из них не имеет никакого значения:
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;
}
3 ответа
Решение
Попробуй это
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
есть разница
Просто переберите список с этим кодом
for (int i = 0; i < locs.size(); i ++){
if (locs.get(i) == null){
locs.remove(i);
i --;
}
}
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
достаточно проверить{
list.remove(я);i--;
} `}