我的android
应用程序中有一个位置列表。我正在尝试从list
移除位置,其中位置ID等于某个值。
这是我的位置分类:
public class Location{
Private int locationId;
Private String locationName;
}
有没有办法在不使用List<Location>
或for
的情况下从while loop
移除位置。类似于lambda
中的C#
表达式:
var filteredLocations = locations.Where(x=>x.LocationId!=3).ToList();
答案 0 :(得分:1)
ArrayList
中有一种方法可以直接删除对象。
public boolean remove(Object o)
您必须覆盖equals方法才能使其正常工作。在内部,它仍然会迭代所有对象,直到找到所需的对象。
以下是该方法的link。
答案 1 :(得分:1)
根据this回答,您可以看到lambda
中存在Java 8
个表达式。
答案中的代码段:
final Array<Integer> a = array(1, 2, 3);
final Array<Integer> b = a.map({int i => i + 42});
arrayShow(intShow).println(b); // {43,44,45}
Android
并未支持所有Java 8
个功能,但lambda
表达式会被支持,您可以在documentation中看到。
答案 2 :(得分:1)
您可以使用适配器
中的以下方法,使用任何循环添加数组列表//you can use addItem all for adding data in array
public void addItem(ClassName item) {
mList.add(item);
notifyItemInserted(mList.size() - 1);
}
//delete all for deleting the whole list of data
public void deleteAll() {
mList.clear();
notifyDataSetChanged();
}
//For deleting a perticular item from data
public void deleteItem(int index) {
mList.remove(index);
notifyItemRemoved(index);
}
//For adding the whole set of array
public void addAllItems(List<ClassName> items) {
mList.addAll(items);
notifyDataSetChanged();
}
//For Updating a single item
public void updateItem(int index, ClassName item) {
mList.set(index, item);
notifyItemChanged(index);
}
其中mList是数组列表
public List<ClassName> mList = new ArrayList<>();
答案 3 :(得分:0)
你可以试试这个。
ArrayList<Location> arrayList = new ArrayList<>(list.size());
arrayList.addAll(list);
arrayList.remove(index) OR arrayList.remove(object)