Anj*_*ali 0 java list arraylist java-10
我有一个dto类,它存储了一些特定主题的学生和标记.基本上是这样的.
List<StudentInfoDTO> studentInfoDTO = new ArrayList<>();
Run Code Online (Sandbox Code Playgroud)
其中StudentInfoDTO如下所示
public class StudentInfoDTO {
Long studentId;
Short marks;
}
Run Code Online (Sandbox Code Playgroud)
现在我想要有最小分数的学生ID.
我在下面试过但没有给出预期的结果.
int smallest = 0;
for(int i = 0; i < studentInfoDTO.size(); i++) {
smallest = studentInfoDTO.get(i).getMarks();
int x = studentInfoDTO.get(i).getMarks();
if (x < smallest) {
smallest = x;
}
}
Run Code Online (Sandbox Code Playgroud)
你也可以使用流,它有一个方便的方法叫做min()
studentInfoDTO.stream().min(Comparator.comparing(StudentInfoDTO::getMarks));
Run Code Online (Sandbox Code Playgroud)
小智 5
您可以通过以下多种方式实现:
Java 1.4风格:
StudentInfoDTO smallest = null;
for (int i = 0; i < studentInfoDTO.size(); i++) {
StudentInfoDTO current = studentInfoDTO.get(i);
if (smallest == null || current.getMarks() < smallest.getMarks() ) {
smallest = current;
}
}
Run Code Online (Sandbox Code Playgroud)
Java 5风格:
StudentInfoDTO smallest = null;
for (StudentInfoDTO current : studentInfoDTO) {
if (smallest == null || current.getMarks() < smallest.getMarks()) {
smallest = current;
}
}
Run Code Online (Sandbox Code Playgroud)
Java 8风格:
StudentInfoDTO smallest = studentInfoDTO.stream()
.min(Comparator.comparing(StudentInfoDTO::getMarks))
.get();
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
149 次 |
最近记录: |