Мне нужно перевести строку sDate и year_of_enrollment в потоке на дату и отсортировать по sDate. Код программы:
`
import java.util.stream.Stream;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Comparator;
public class Program {
public static void main(String[] args) throws Exception {
System.out.println("FIO \t\t\t\tSdate \tyear_of_enrollment \tmath1 \tphisic \toop");
Stream<Student> StudentStream =
Stream.of(new Student("Student1", "2018-12-12", "12.09.2014", 90, 86, 98),
new Student("Student2", "2018-12-12", "12.09.2014", 91, 80, 90));
StudentStream.sorted(new StudentComparator())
.forEach(p -> System.out.printf("%s | \t%s | \t\t%s | \t\t\t%d \n",
p.getName(),
p.getDate(),
p.getYear_of_enrollment(),
p.getMath1(), p.getPhisic(),
p.getOop()));
}
}
class Student {
private String name;
// private String date_of_birth;
String sDate1;
private String year_of_enrollment;
private int math1;
private int phisic;
private int oop;
public Student(String name, String sDate1,
String year_of_enrollment, int math1, int phisic, int oop) {
this.name = name;
this.sDate1 = sDate1;
this.year_of_enrollment = year_of_enrollment;
this.math1 = math1;
this.phisic = phisic;
this.oop = oop;
}
public int avg(int math1, int phisic, int oop) {
return (math1 + phisic + oop) / 3;
}
public String getName() {
return name;
}
public String getDate() {
return sDate1;
}
public String getYear_of_enrollment() {
return year_of_enrollment;
}
public int getMath1() {
return math1;
}
public int getPhisic() {
return phisic;
}
public int getOop() {
return oop;
}
}
class StudentComparator implements Comparator<Student> {
public int compare(Student x, Student y) {
return x.getName()
.toUpperCase()
.compareTo(y.getName()
.toUpperCase());
}
}
Без потока мне удалось перевести строку в дату
import java.util.Date;
import java.text.SimpleDateFormat;
public class StringToDateExample1 {
public static void main(String[] args) throws Exception {
Student st = new Student();
st.SetDate("12/12/2019");
Date date1 = new SimpleDateFormat("dd/MM/yyyy").parse(st.getDate());
System.out.println(date1);
}
}
class Student {
String sDate1;
public void SetDate(String sDate1) {
this.sDate1 = sDate1;
}
public String getDate() {
return sDate1;
}
}
помогите пожалуйста. Я также хотел бы знать, как получить среднее значение всех введенных значений numeri c и распечатать в отдельной строке.