From 7f6f6c8ea80b3d630685a7d360dfcdd05e3adcdf Mon Sep 17 00:00:00 2001 From: Paul Reichmuth Date: Thu, 18 Dec 2025 15:33:44 +0100 Subject: [PATCH] refactor passedStations and members to be of type List instead of Map, as a key is not needed --- .../timekeep_backend/entities/Team.java | 35 +++++++++---------- 1 file changed, 17 insertions(+), 18 deletions(-) diff --git a/src/main/java/de/pnreichmuth/timekeep_backend/entities/Team.java b/src/main/java/de/pnreichmuth/timekeep_backend/entities/Team.java index 52d7f27..46132e0 100644 --- a/src/main/java/de/pnreichmuth/timekeep_backend/entities/Team.java +++ b/src/main/java/de/pnreichmuth/timekeep_backend/entities/Team.java @@ -4,8 +4,8 @@ import jakarta.persistence.*; import lombok.*; -import java.util.HashMap; -import java.util.Map; +import java.util.List; +import java.util.ArrayList; import java.util.UUID; @Entity @@ -25,31 +25,31 @@ public class Team { private List members; @OneToMany(cascade = CascadeType.ALL) - private Map passedStations; + private List passedStations; public Team(){ this.teamName = null; this.firstSemesterTeam = true; - this.members = new HashMap<>(4); - this.passedStations = new HashMap<>(); + this.members = new ArrayList<>(4); + this.passedStations = new ArrayList<>(); } - public Team(String teamName, boolean firstSemesterTeam, Map members, Map passedStations){ + public Team(String teamName, boolean firstSemesterTeam, List members, List passedStations){ this.teamName = teamName; this.firstSemesterTeam = firstSemesterTeam; - this.members = new HashMap<>(members.size()); - this.members.putAll(members); - this.passedStations = new HashMap<>(passedStations.size()); - this.passedStations.putAll(passedStations); + this.members = new ArrayList<>(members.size()); + this.members.addAll(members); + this.passedStations = new ArrayList<>(passedStations.size()); + this.passedStations.addAll(passedStations); } /** * Treat this team as a team of first semester students, if at least 50% of its members are in the first semester */ private void checkFirstSemesterTeam(){ - long erstiCount = members.entrySet().stream() + long erstiCount = members.stream() .filter( - e -> e.getValue().getIsFirstSemester() + Racer::getIsFirstSemester ).count(); double percentFirstSemester = erstiCount /(double)members.size(); this.firstSemesterTeam = percentFirstSemester >= 0.5; @@ -60,7 +60,8 @@ public class Team { * @param newMember the Racer object to be added to the team */ public void addMember(Racer newMember){ - this.members.put(String.format("%s, %s", newMember.getLastName(), newMember.getFirstName()), newMember ); + this.members.add(newMember); + newMember.setMemberTeam(this); this.checkFirstSemesterTeam(); } @@ -70,11 +71,9 @@ public class Team { * @param lastName the last name of the racer to be removed */ public void removeMember(String firstName, String lastName){ - this.members.remove(this.generateMapKeyFromName(firstName, lastName)); + this.members.forEach(racer ->{ + if(firstName.equals(racer.getFirstName()) && lastName.equals(racer.getLastName())) members.remove(racer); + }); this.checkFirstSemesterTeam(); } - - private String generateMapKeyFromName(String firstName, String lastName){ - return String.format("%s, %s", firstName, lastName); - } }