Untitled

 avatar
unknown
java
3 years ago
2.3 kB
9
Indexable
import java.util.*;
import java.util.stream.Collectors;

public class Main {

    public static void main(String[] args) {

        String searchedName = "Gosho";

        List<Person> studentsFromClassA = List.of(
                new Person("Gosho", 12),
                new Person("Petko", 32));

        List<Person> sortedStudents = studentsFromClassA
                                                    .stream()
                                                    .sorted((p1, p2) -> p2.getName().compareTo(p1.getName()))
                                                    .collect(Collectors.toList());
        System.out.println(sortedStudents);
        Map<String, List<Person>> schoolClasses = new HashMap<>(
                Map.of("class A", studentsFromClassA));

        for (Map.Entry<String, List<Person>> schoolClass : schoolClasses.entrySet()) {
            System.out.println(String.format("Class name: %s, Student names: %s", schoolClass.getKey(), schoolClass.getValue()));
        }

        schoolClasses
                .forEach((schoolClassName, schoolStudents) ->
                        schoolStudents
                                .stream()
                                .filter(x -> x.getName().equals(searchedName))
                                .forEach(name ->
                                        System.out.println(
                                                String.format("Student with this name is found in class: %s", schoolClassName))));


        System.out.println(Objects.equals(studentsFromClassA.get(0), new Person("Gosho", 12)));
    }

}


import java.util.Objects;

public class Person {

    private String name;
    private int age;


    public Person(String name, int age) {
        this.name = name;
        this.age = age;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    @Override
    public boolean equals(Object o) {
        Person person = (Person) o;
        return hashCode() == o.hashCode();
    }

    @Override
    public int hashCode() {
        return Objects.hash(name, age);
    }

    @Override
    public String toString() {
        return getName();
    }
}
Editor is loading...