Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package p07_ObjectsAndClasses.Lab;
- import java.util.ArrayList;
- import java.util.List;
- import java.util.Scanner;
- import java.util.stream.Collectors;
- public class Student {
- private String firstName;
- private String lastName;
- private int age;
- private String hometown;
- public String getFirstName() {
- return firstName;
- }
- public void setFirstName(String firstName) {
- this.firstName = firstName;
- }
- public String getLastName() {
- return lastName;
- }
- public void setLastName(String lastName) {
- this.lastName = lastName;
- }
- public int getAge() {
- return age;
- }
- public void setAge(int age) {
- this.age = age;
- }
- public String getHometown() {
- return hometown;
- }
- public void setHometown(String hometown) {
- this.hometown = hometown;
- }
- @Override
- public String toString() {
- return firstName + " " + lastName + " is " + age + " years old";
- }
- public static void main(String[] args) {
- Scanner console = new Scanner(System.in);
- String input = console.nextLine();
- List<Student> students = new ArrayList<>();
- while (!input.equals("end")) {
- // Четем данните за полетата в класа
- String[] tokens = input.split("\\s+");
- String firstName = tokens[0];
- String lastName = tokens[1];
- int age = Integer.parseInt(tokens[2]);
- String hometown = tokens[3];
- // метода isExisting итерира по листа с класове от тип Студент и
- // ако намери такъв, чиито имена съответстват на тези, които са въведени от конзолата в момента
- // връща true
- // съответно ако е true изполлзваме метода getStudent за да вземем студента с дадените имена от листа
- // и му задаваме новите стойниости, които получаваме от конзолата
- if (isExisting(students, firstName, lastName)) {
- Student student = getStudent(students, firstName, lastName);
- student.setFirstName(firstName);
- student.setLastName(lastName);
- student.setAge(age);
- student.setHometown(hometown);
- // иначе създаваме нов Студент и го добавяме към листа със студенти
- } else {
- Student student = new Student();
- student.setFirstName(firstName);
- student.setLastName(lastName);
- student.setAge(age);
- student.setHometown(hometown);
- students.add(student);
- }
- input = console.nextLine();
- }
- String townSort = console.nextLine();
- // взимаме само студентите, чийто град съответства на въведения и ги добавяме в нов лист
- List<Student> filterStudents = students.stream()
- .filter(e -> e.getHometown().equals(townSort))
- .collect(Collectors.toList());
- // итерираме по новия лист и принтираме нужните данни
- for (Student filterStudent : filterStudents) {
- System.out.println(filterStudent);
- }
- }
- private static boolean isExisting(List<Student> students, String firstName, String lastName) {
- for (Student student : students) {
- if (student.getFirstName().equals(firstName) && student.getLastName().equals(lastName)) {
- return true;
- }
- }
- return false;
- }
- private static Student getStudent(List<Student> students, String firstName, String lastName) {
- Student existingStudent = null;
- for (Student student : students) {
- if (student.getFirstName().equals(firstName) && student.getLastName().equals(lastName)) {
- existingStudent = student;
- }
- }
- return existingStudent;
- }
- }
Add Comment
Please, Sign In to add comment