我有一个地图(假设每个例子都是人),如下所示:
public Map<String, Person> personMap = new HashMap<>();
我想要搜索这个地图,按名字过滤。我有这段代码,但我很好奇是否有更好的或更优雅的方式来完成它。
public ArrayList<Person> searchByName(String query) {
ArrayList<Person> listOfPeople = new ArrayList<>();
for (Map.Entry<String, Person> entry : this.personMap.entrySet()) {
Person person = entry.getValue();
String name = entry.getValue().getName();
if (name.toLowerCase().contains(query.toLowerCase())) {
listOfPeople.add(person);
}
}
if (listOfPeople.isEmpty()) {
throw new IllegalStateException("This data doesn't appear on the Map");
}
return listOfPeople;
}
提前感谢
https://stackoverflow.com/questions/50789322
复制相似问题