emodev

Untitled

Apr 1st, 2019
81
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 4.33 KB | None | 0 0
  1. package p07_ObjectsAndClasses.Lab;
  2.  
  3. import java.util.ArrayList;
  4. import java.util.List;
  5. import java.util.Scanner;
  6. import java.util.stream.Collectors;
  7.  
  8. public class Student {
  9.     private String firstName;
  10.     private String lastName;
  11.     private int age;
  12.     private String hometown;
  13.  
  14.     public String getFirstName() {
  15.         return firstName;
  16.     }
  17.  
  18.     public void setFirstName(String firstName) {
  19.         this.firstName = firstName;
  20.     }
  21.  
  22.     public String getLastName() {
  23.         return lastName;
  24.     }
  25.  
  26.     public void setLastName(String lastName) {
  27.         this.lastName = lastName;
  28.     }
  29.  
  30.     public int getAge() {
  31.         return age;
  32.     }
  33.  
  34.     public void setAge(int age) {
  35.         this.age = age;
  36.     }
  37.  
  38.     public String getHometown() {
  39.         return hometown;
  40.     }
  41.  
  42.     public void setHometown(String hometown) {
  43.         this.hometown = hometown;
  44.     }
  45.  
  46.     @Override
  47.     public String toString() {
  48.         return firstName + " " + lastName + " is " + age + " years old";
  49.     }
  50.  
  51.  
  52.     public static void main(String[] args) {
  53.         Scanner console = new Scanner(System.in);
  54.  
  55.         String input = console.nextLine();
  56.         List<Student> students = new ArrayList<>();
  57.  
  58.         while (!input.equals("end")) {
  59.  
  60. //            Четем данните за полетата в класа
  61.             String[] tokens = input.split("\\s+");
  62.             String firstName = tokens[0];
  63.             String lastName = tokens[1];
  64.             int age = Integer.parseInt(tokens[2]);
  65.             String hometown = tokens[3];
  66.  
  67. //            метода isExisting итерира по листа с класове от тип Студент и
  68. //            ако намери такъв, чиито имена съответстват на тези, които са въведени от конзолата в момента
  69. //            връща true
  70.  
  71. //            съответно ако е true изполлзваме метода getStudent за да вземем студента с дадените имена от листа
  72. //            и му задаваме новите стойниости, които получаваме от конзолата
  73.             if (isExisting(students, firstName, lastName)) {
  74.                 Student student = getStudent(students, firstName, lastName);
  75.                 student.setFirstName(firstName);
  76.                 student.setLastName(lastName);
  77.                 student.setAge(age);
  78.                 student.setHometown(hometown);
  79.  
  80. //                иначе създаваме нов Студент и го добавяме към листа със студенти
  81.             } else {
  82.                 Student student = new Student();
  83.                 student.setFirstName(firstName);
  84.                 student.setLastName(lastName);
  85.                 student.setAge(age);
  86.                 student.setHometown(hometown);
  87.                 students.add(student);
  88.             }
  89.  
  90.  
  91.             input = console.nextLine();
  92.         }
  93.  
  94.  
  95.         String townSort = console.nextLine();
  96.  
  97. //        взимаме само студентите, чийто град съответства на въведения и ги добавяме в нов лист
  98.         List<Student> filterStudents = students.stream()
  99.                 .filter(e -> e.getHometown().equals(townSort))
  100.                 .collect(Collectors.toList());
  101.  
  102. //        итерираме по новия лист и принтираме нужните данни
  103.         for (Student filterStudent : filterStudents) {
  104.             System.out.println(filterStudent);
  105.  
  106.         }
  107.     }
  108.  
  109.     private static boolean isExisting(List<Student> students, String firstName, String lastName) {
  110.         for (Student student : students) {
  111.             if (student.getFirstName().equals(firstName) && student.getLastName().equals(lastName)) {
  112.                 return true;
  113.             }
  114.         }
  115.         return false;
  116.     }
  117.  
  118.     private static Student getStudent(List<Student> students, String firstName, String lastName) {
  119.         Student existingStudent = null;
  120.         for (Student student : students) {
  121.             if (student.getFirstName().equals(firstName) && student.getLastName().equals(lastName)) {
  122.                 existingStudent = student;
  123.             }
  124.         }
  125.         return existingStudent;
  126.     }
  127.  
  128.  
  129. }
Add Comment
Please, Sign In to add comment