diff --git a/Exercise.java b/Exercise.java index 3c092f9..3de8e02 100644 --- a/Exercise.java +++ b/Exercise.java @@ -1,6 +1,20 @@ +import java.util.ArrayList; + public class Exercise { public static void main(String[] args) { - // implement exercise here + + SchoolClass schoolClass = new SchoolClass("9c", new ArrayList<>()); + + schoolClass.addPupil(new Pupil("Hans", "m")); + schoolClass.addPupil(new Pupil("Peter", "m")); + schoolClass.addPupil(new Pupil("Lisa", "w")); + schoolClass.addPupil(new Pupil("Fritz", "m")); + schoolClass.addPupil(new Pupil("Max", "m")); + schoolClass.addPupil(new Pupil("Franziska", "w")); + schoolClass.addPupil(new Pupil("Jennifer", "w")); + // schoolClass.addPupil(new Pupil("Jeremy", "m")); + + schoolClass.getPairs().forEach(System.out::println); } } diff --git a/Pair.java b/Pair.java new file mode 100644 index 0000000..40a05c6 --- /dev/null +++ b/Pair.java @@ -0,0 +1 @@ +public record Pair(T partA, T partB) {} diff --git a/Pupil.java b/Pupil.java new file mode 100644 index 0000000..92028c2 --- /dev/null +++ b/Pupil.java @@ -0,0 +1 @@ +public record Pupil(String name, String gender) {} diff --git a/SchoolClass.java b/SchoolClass.java new file mode 100644 index 0000000..eec533a --- /dev/null +++ b/SchoolClass.java @@ -0,0 +1,27 @@ +import java.util.ArrayList; +import java.util.List; +import java.util.Random; + +public record SchoolClass(String name, List pupils) { + + public void addPupil(Pupil pupil) { + pupils.add(pupil); + } + + public List> getPairs() { + List> pairs = new ArrayList<>(); + while (pupils().size() > 0) { + if (pupils.size() == 1) { + pairs.add(new Pair(pupils().get(0), null)); + pupils().clear(); + } else { + Pupil single1 = pupils.get((new Random().nextInt(pupils.size()))); + pupils.remove(single1); + Pupil single2 = pupils.get((new Random().nextInt(pupils.size()))); + pupils.remove(single2); + pairs.add(new Pair(single1, single2)); + } + } + return pairs; + } +}