如何解决如何通过Java流和Lambda函数使用if〜elseif语句?
我想制作如下的成绩课程。
但是我一定不要使用if〜else语句。
必须使用Java Stream和lambda函数。
svn log --depth infinity --diff -r 12345 -v
解决方法
Stream比条件构造更像是循环构造。并且由于一个阶段的结果可以链接到另一阶段,因此它们需要保持要从一个阶段传递到另一个阶段的对象结构的一致性。 因此,我认为没有办法将if-else语句编写为单独的阶段。 但是,您可以将它们包装在地图中并进行条件工作。
!urlEntity.isEmpty()
,
您可以使用以下解决方案:
public class App {
static class Grade {
private final String grade;
private final Integer score;
public Grade(String grade,Integer score) {
this.grade = grade;
this.score = score;
}
public String getGrade() {
return grade;
}
public Integer getScore() {
return score;
}
}
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("score : ");
int score = sc.nextInt();
List<Grade> gradeList = new ArrayList<>();
gradeList.add(new Grade("A",9));
gradeList.add(new Grade("B",8));
gradeList.add(new Grade("C",7));
gradeList.add(new Grade("D",6));
Grade s = gradeList.stream()
.filter(el -> ( score / 10 ) >= el.getScore())
.findFirst().orElse(new Grade("F",5));
System.out.println(s.getGrade());
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。