Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 7 additions & 5 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -21,16 +21,18 @@
</build>

<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>LATEST</version>
</dependency>

<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>LATEST</version>
</dependency>

<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-api</artifactId>
<version>5.10.2</version>
<scope>test</scope>
</dependency>
</dependencies>
</project>
40 changes: 40 additions & 0 deletions src/main/java/faangschool/magic/Main.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
package faangschool.magic;

import fromsber.Employee;

import java.util.Arrays;
import java.util.Comparator;
import java.util.List;

public class Main {
public static void main(String[] args) {
Student student = new Student();
Student student2 = new Student();
Student student3 = new Student();
Student student4 = new Student();

student2.setAge(15);
student2.setName("Alpha");
student.setAge(18);
student.setName("Mozol");
student4.setAge(16);
student4.setName("Bruce");
student3.setAge(56);
student3.setName("Zoo");

Student[] students = new Student[]{student, student2, student3, student4};

System.out.println("Unsorted array " + Arrays.toString(students));

Arrays.sort(students);

System.out.println("Sorted array " + Arrays.toString(students));

Arrays.stream(students).sorted(new StudentNameComparatorASC()).forEach(System.out::println);
System.out.println();

Arrays.stream(students).sorted(new StudentNameComparatorDESC()).forEach(System.out::println);


}
}
60 changes: 60 additions & 0 deletions src/main/java/faangschool/magic/Student.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
package faangschool.magic;


import java.util.Arrays;
import java.util.Comparator;

public class Student
implements Comparable<Student> {
private String name;
private int age;
private String faculty;
private String[] abilities;

public String getName() {
return name;
}

public int getAge() {
return age;
}

public String getFaculty() {
return faculty;
}

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

@Override
public String toString() {
return "Student{" +
"name='" + name + '\'' +
", age=" + age +
// ", faculty='" + faculty + '\'' +
// ", abilities=" + Arrays.toString(abilities) +
'}';
}

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

public void setFaculty(String faculty) {
this.faculty = faculty;
}

public void setAbilities(String[] abilities) {
this.abilities = abilities;
}

public String[] getAbilities() {
return abilities;
}

@Override
public int compareTo(Student o) {
return this.age - o.age;
}
}
11 changes: 11 additions & 0 deletions src/main/java/faangschool/magic/StudentNameComparatorASC.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
package faangschool.magic;

import java.util.Comparator;

public class StudentNameComparatorASC implements Comparator<Student> {

@Override
public int compare(Student o1, Student o2) {
return o1.getName().compareTo(o2.getName());
}
}
10 changes: 10 additions & 0 deletions src/main/java/faangschool/magic/StudentNameComparatorDESC.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
package faangschool.magic;

import java.util.Comparator;

public class StudentNameComparatorDESC implements Comparator<Student> {
@Override
public int compare(Student o1, Student o2) {
return o2.getName().compareTo(o1.getName());
}
}
19 changes: 19 additions & 0 deletions src/main/java/faangschool/magic/collection/CompositeKey.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
package faangschool.magic.collection;


import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;

@AllArgsConstructor
@Data
@Builder
public class CompositeKey {

private final String faculty;
private final int year;


}


17 changes: 17 additions & 0 deletions src/main/java/faangschool/magic/collection/CountOccurrences.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
package faangschool.magic.collection;

import java.util.HashMap;

public class CountOccurrences {
public static void main(String[] args) {
int[] arr = {1, 2, 3, 4, 2, 1, 3, 4, 5, 1};

HashMap<Integer, Integer> map = new HashMap<>();

for (int i : arr) {
map.put(i, map.getOrDefault(i, 0) + 1);
}

System.out.println(map);
}
}
72 changes: 72 additions & 0 deletions src/main/java/faangschool/magic/collection/Main.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,72 @@
package faangschool.magic.collection;

import java.util.*;
import java.util.stream.Collectors;

import static java.util.List.*;

public class Main {

public static List<Student> initStudents;
public static Map<CompositeKey, List<Student>> students;

static {
initStudents = of(
Student.builder().name("Boris").faculty("Math").year(2006).build(),
Student.builder().name("Vasily").faculty("Physic").year(2011).build(),
Student.builder().name("Nick").faculty("Chemistry").year(2015).build(),
Student.builder().name("Ahmed").faculty("Math").year(2003).build(),
Student.builder().name("Marina").faculty("Economic").year(2013).build(),
Student.builder().name("Olga").faculty("Biology").year(2005).build(),
Student.builder().name("Maria").faculty("Chemistry").year(2015).build(),
Student.builder().name("Georgy").faculty("Physic").year(2004).build(),
Student.builder().name("Stepan").faculty("Literature").year(2008).build(),
Student.builder().name("Anna").faculty("Literature").year(2004).build(),
Student.builder().name("Semen").faculty("Physic").year(2011).build()
);

students = getStudentsGroupingByFacultyAndYear(initStudents);
}


public static void main(String[] args) {

for (Map.Entry<CompositeKey, List<Student>> entry: students.entrySet()) {
System.out.println();
}
}

public static Map<CompositeKey, List<Student>> getStudentsGroupingByFacultyAndYear(List<Student> students){
return students
.stream()
.collect(Collectors.groupingBy(c-> new CompositeKey(c.getFaculty(), c.getYear())));
}

//TODO 16.08.2024 - 8:29: refactor method
public static boolean addStudent(Student student) {
ArrayList<Student> emptyStudentsLists = new ArrayList<>();

if(student != null) {
CompositeKey key = new CompositeKey(student.getFaculty(), student.getYear());

if(!students.containsKey(key)) {
students.put(key, students.getOrDefault(key, emptyStudentsLists));
return true;
}
} else{
return false;
}
return false;
}

//TODO 16.08.2024 - 8:29: refactor method
public static boolean deleteStudent(Student student) {
CompositeKey maybeStudent = new CompositeKey(student.getFaculty(), student.getYear());
if(students.containsKey(maybeStudent)) {
students.remove(maybeStudent);
return true;
} else {
return false;
}
}
}
33 changes: 33 additions & 0 deletions src/main/java/faangschool/magic/collection/MutableKey.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
package faangschool.magic.collection;

import java.util.Objects;

public class MutableKey {

private String key;

public MutableKey(String key) {
this.key = key;
}

public void setKey(String key) {
this.key = key;
}

@Override
public boolean equals(Object o) {
if (this == o) {
return true;
}
if(o == null || getClass() != o.getClass()) {
return false;
}
MutableKey that = (MutableKey) o;
return Objects.equals(key, that.key);
}

@Override
public int hashCode() {
return Objects.hashCode(key);
}
}
24 changes: 24 additions & 0 deletions src/main/java/faangschool/magic/collection/ReverseMapping.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
package faangschool.magic.collection;

import java.util.HashMap;
import java.util.Map;
import java.util.stream.Collectors;

public class ReverseMapping {
public static void main(String[] args) {

HashMap<String, String> countryCapital = new HashMap<>();
countryCapital.put("France", "Paris");
countryCapital.put("England", "London");
countryCapital.put("Russia", "Moscow");

System.out.println(countryCapital);

Map<String, String> capitalCountry = countryCapital
.entrySet()
.stream()
.collect(Collectors.toMap(Map.Entry::getValue, Map.Entry::getKey));

System.out.println(capitalCountry);
}
}
16 changes: 16 additions & 0 deletions src/main/java/faangschool/magic/collection/Student.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
package faangschool.magic.collection;

import lombok.Builder;
import lombok.Data;

@Data
@Builder
public class Student {

private String name;
private String faculty;
private int year;



}
36 changes: 36 additions & 0 deletions src/main/java/fromsber/Employee.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
package fromsber;

public class Employee {

private String name;
private Status status;

public Employee(String name, Status status) {
this.name = name;
this.status = status;
}

public String getName() {
return name;
}

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

public Status getStatus() {
return status;
}

@Override
public String toString() {
return "Employee{" +
"name='" + name + '\'' +
", status=" + status +
'}';
}

public void setStatus(Status status) {
this.status = status;
}
}
Loading