我有以下课程,我将在其中存储用户的姓名和职位,
public class NameAndPosition {
private String name = "";
private LatLng position = null;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public LatLng getPosition() {
return position;
}
public void setPosition(LatLng position) {
this.position = position;
}
}
在我的MainActivity
课程中,我创建了一个ArrayList
类NameAndPostion
的对象,
ArrayList<NameAndPosition> LocSenders = new ArrayList<NameAndPosition>();
在我的代码中的某个地方,我想检查LocSenders
是否包含具有给定名称的用户。我不想在这里担任重要职务。我只想在LocSenders
ArrayList中查看名称。
e.g。我已经指定了一个名称John然后我想要在ArrayList中检索名为John的那些对象。
怎么做?
提前致谢。
答案 0 :(得分:3)
从Java 8开始,您可以使用Stream API来实现这类目标。
Collection<NameAndPosition> list = ...;
String name = ...;
boolean inList = list.stream().anyMatch(e -> name.equals(e.getName()));
答案 1 :(得分:2)
您需要遍历它们并查看每个名称:
public static boolean ListContainsName(List<NameAndPosition> list, String name) {
for (NameAndPosition nandp : list)
if (name.equals(nandp.getName()))
return true;
return false;
}
用法:
if (ListContainsName(LocSenders, "John"))
// then John is in list
如果按姓名查找很常见,您是否考虑过地图:
Map<String, LatLng> sendersLocations = new HashMap<String, LatLng>();
然后查找更容易,更有效:
if (sendersLocations.containsKey("John"))
// then John is in list
获得职位同样容易:
LatLng pos = sendersLocations.get("John");