Предположим, что у нас есть класс Student, который содержит поля name, score и totalScore. Поле score содержит баллы, которые получил ученик, а поле totalScore содержит максимальное количество баллов, которое можно получить. Для того чтобы узнать имя и процент каждого ученика, можно использовать метод map() для преобразования объектов Student в строки, которые содержат имя и процент.
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
public class Student {
private String name;
private int score;
private int totalScore;
public Student(String name, int score, int totalScore) {
this.name = name;
this.score = score;
this.totalScore = totalScore;
}
public String getName() {
return name;
}
public int getScore() {
return score;
}
public int getTotalScore() {
return totalScore;
}
}
public class Main {
public static void main(String[] args) {
List<Student> students = Arrays.asList(
new Student("Alice", 70, 100),
new Student("Bob", 50, 80),
new Student("Charlie", 80, 90),
new Student("David", 65, 70)
);
List<String> studentInfo =
students.stream()
.map(s -> s.getName() + ": " + (s.getScore() * 100 / s.getTotalScore()) + "%")
.collect(Collectors.toList());
System.out.println("Student info: " + studentInfo);
}
}
В этом примере мы создаем список students, содержащий объекты класса Student, заполняем его данными и затем используем метод map() для преобразования каждого объекта Student в строку, которая содержит имя ученика и его процент (рассчитанный как отношение полученных баллов к максимальному количеству баллов). Результатом является список строк, содержащих информацию обо всех учениках.
Затем мы выводим этот список в консоль.
1606 вопрос-ответ по Java: https://github.com/DEBAGanov/interview_questions
Tелеграмм канал: https://t.me/DEBAGanov
Мое резюме: https://github.com/DEBAGanov