Advertisement
Deianov

04. Teamwork projects - Ivan Yonkov

Mar 14th, 2019
128
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 3.58 KB | None | 0 0
  1. //04. Teamwork projects by Ivan Yonkov
  2.  
  3. import java.util.*;
  4.  
  5. public class P04_TeamworkProject {
  6.     public static void main(String[] args) {
  7.         Scanner sc = new Scanner(System.in);
  8.  
  9.         List<Team> teams = new ArrayList<>();
  10.         List<String> members = new ArrayList<>();
  11.  
  12.         int teamSize = Integer.parseInt(sc.nextLine());
  13.  
  14.         while (teamSize-->0) {
  15.             String[] creatorAndTeam = sc.nextLine().split("-");
  16.             String creator = creatorAndTeam[0];
  17.             String teamName = creatorAndTeam[1];
  18.             if (teams.stream().anyMatch(t -> t.getName().equalsIgnoreCase(teamName))) {
  19.                 System.out.printf("Team %s was already created!%n", teamName);
  20.                 continue;
  21.             }
  22.  
  23.             if (members.contains(creator)) {
  24.                 System.out.printf("%s cannot create another team!%n", creator);
  25.                 continue;
  26.             }
  27.  
  28.             Team team = new Team(teamName, creator);
  29.             teams.add(team);
  30.             members.add(creator);
  31.             System.out.printf("Team %s has been created by %s!%n", teamName, creator);
  32.         }
  33.  
  34.         String line = sc.nextLine();
  35.  
  36.         while (!line.equalsIgnoreCase("end of assignment")) {
  37.             String[] memberAndTeam = line.split("->");
  38.             String member = memberAndTeam[0];
  39.             String teamName = memberAndTeam[1];
  40.             Team team = teams.stream().filter(t -> t.getName().equals(teamName))
  41.                     .findFirst().orElse(null);
  42.  
  43.             if (team == null) {
  44.                 System.out.printf("Team %s does not exist!%n", teamName);
  45.                 line = sc.nextLine();
  46.                 continue;
  47.             }
  48.  
  49.             if (members.contains(member)) {
  50.                 System.out.printf("Member %s cannot join team %s!%n", member, teamName);
  51.                 line = sc.nextLine();
  52.                 continue;
  53.             }
  54.  
  55.             team.addMember(member);
  56.             members.add(member);
  57.  
  58.             line = sc.nextLine();
  59.         }
  60.  
  61.         teams
  62.                 .stream()
  63.                 .filter(team -> !team.isDisband())
  64.                 .sorted(
  65.                         Comparator.comparing(team -> ((Team)team).size())
  66.                                 .reversed()
  67.                                 .thenComparing(team -> ((Team)team).getName())
  68.                 )
  69.                 .forEach(System.out::println);
  70.  
  71.         System.out.println("Teams to disband:");
  72.         teams
  73.                 .stream()
  74.                 .filter(Team::isDisband)
  75.                 .map(Team::getName)
  76.                 .sorted()
  77.                 .forEach(System.out::println);
  78.     }
  79.  
  80. }
  81.  
  82.  
  83. class Team {
  84.     private String name;
  85.     private String creator;
  86.  
  87.     private List<String> members;
  88.  
  89.     public Team(String name, String leader) {
  90.         this.name = name;
  91.         this.creator = leader;
  92.         this.members = new ArrayList<>();
  93.     }
  94.  
  95.     public String getName() {
  96.         return this.name;
  97.     }
  98.  
  99.     public void addMember(String member) {
  100.         this.members.add("-- " + member);
  101.     }
  102.  
  103.     public boolean isDisband() {
  104.         return this.members.size() == 0;
  105.     }
  106.  
  107.     public int size() {
  108.         return this.members.size();
  109.     }
  110.  
  111.     @Override
  112.     public String toString() {
  113.         Collections.sort(this.members);
  114.         return this.getName() +
  115.                 System.lineSeparator() +
  116.                 "- " +
  117.                 this.creator +
  118.                 System.lineSeparator() +
  119.                 String.join(System.lineSeparator(), this.members);
  120.     }
  121. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement