如何返回列表“s”中的2名第一名学生的列表?

时间:2017-12-07 12:40:05

标签: java list

我正在学习java。在按字母顺序排序后,当我返回列表中的2名第一名学生的列表时,我遇到了麻烦。非常感谢有人帮助我,非常感谢。这是我的代码比较器和接口。

@Override
public List<Student> f1(List<Student> s) {
   Collections.sort(s, new Comparator<Student>() {
       @Override
       public int compare(Student o1, Student o2) {
           return o1.getName().compareToIgnoreCase(o2.getName());
       }
   });
    return s;
}
 List<Student> f1(List<Student> s);

2 个答案:

答案 0 :(得分:3)

  

当我在列表中返回2名第一批学生的名单时,我遇到了麻烦   在我按字母顺序排序名称之后。

您需要返回

return s.subList(0,2);

其中subList会为列表

提供所需的列表部分

答案 1 :(得分:0)

许多可能性......例如

// your code
return Arrays.asList(s.get(0), s.get(1));

s.stream()
    .sorted((s1, s2) -> s1.compareToIgnoreCase(s2)) // sort
    .limit(2)    // first two
    .collect(Collectors.toList()); // create list