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
30 changes: 30 additions & 0 deletions src/com/school/faang/hashset/задача_5/GameLobby.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
package com.school.faang.hashset.задача_5;

import java.util.Set;
import java.util.HashSet;
import java.util.LinkedHashSet;

public class GameLobby {

private final Set<Player> players;

public GameLobby() {
players = new LinkedHashSet<>();
}

public void addPlayer(String nickname) {
players.add(new Player(nickname));
}

public void removePlayer(String nickname) {
players.remove(new Player(nickname));
}

public boolean hasPlayer(String nickname) {
return players.contains(new Player(nickname));
}

public void displayPlayers() {
players.forEach(System.out::println);
}
}
47 changes: 47 additions & 0 deletions src/com/school/faang/hashset/задача_5/Player.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
package com.school.faang.hashset.задача_5;

import java.util.Objects;

public class Player {

private final String nickname;
private String status;

public Player(String nickname) {
this.nickname = nickname;
status = "unready";
}

public String getNickname() {
return nickname;
}

public String getStatus() {
return status;
}

public void setStatus(String status) {
if (!(status.equals("ready") || status.equals("unready"))) {
throw new IllegalArgumentException("Bad status");
}
this.status = status;
}

@Override
public int hashCode() {
return Objects.hashCode(nickname);
}

@Override
public boolean equals(Object obj) {
if (!(obj instanceof Player)) {
return false;
}
return this.nickname.equals(((Player) obj).nickname);
}

@Override
public String toString() {
return nickname;
}
}
11 changes: 10 additions & 1 deletion src/com/school/faang/hashset/задача_5/Solution.java
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,15 @@

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

GameLobby gameLobby = new GameLobby();
gameLobby.addPlayer("Vladik1997");
gameLobby.addPlayer("MichsSS");
gameLobby.addPlayer("VladMishustin");
gameLobby.addPlayer("VladMishustin");
System.out.println(gameLobby.hasPlayer("Vladik1997"));
gameLobby.displayPlayers();
gameLobby.removePlayer("Vladik1997");
System.out.println(gameLobby.hasPlayer("Vladik1997"));
gameLobby.displayPlayers();
}
}