我已经Collection<Student>
并且想要返回学生列表与过滤器进行比较。为此,我有以下代码
public Collection<Student> findStudents(String filter) {
return // ?
}
我的问题是使用 WhereIn/Contains 的返回语句应该是什么?
我已经Collection<Student>
并且想要返回学生列表与过滤器进行比较。为此,我有以下代码
public Collection<Student> findStudents(String filter) {
return // ?
}
我的问题是使用 WhereIn/Contains 的返回语句应该是什么?
使用谷歌番石榴:
过滤一个Collection
学生姓名
public Collection<String> findStudents(String filter) {
Iterable<String> filteredStudents = Iterables.filter(listOfStudentNames, Predicates.containsPattern(filter));
return Lists.newArrayList(filteredStudents);
}
过滤一个Collection<Student>
public Collection<Student> findStudents(String filter) {
Iterable<Student> filteredStudents = Iterables.filter(listOfStudents, new Predicate<Student>() {
@Override
public boolean apply(Student student) {
return student.getName().contains(filter);
}
}
}
return Lists.newArrayList(filteredStudents);
例子:
Iterable<String> filtered = Iterables.filter(Arrays.asList("asdf", "bsdf", "eeadd", "asdfeeee", "123"), Predicates.containsPattern("df"));
filtered
现在包含[asdf, bsdf, asdfeeee]
例如像这样(返回新列表,不修改原始列表)
public Collection<Student> findStudents(List<Student> orgininalList, String filter) {
List<Student> filteredList = new ArrayList<Student>();
for(Student s : originalList) {
if(s.getName().contains(filter)) {
filterdList.add(s);
}
}
return filteredList;
}
PS 注意“cPu1”的回答,Google Guava 是非常有用的框架。
尝试类似的东西
public Collection<Student> findStudents(String filter) {
List<Student> students = new ArrayList<Student>();
// filter data
//if criteria match add to students
return students;
}