Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.io.BufferedReader;
- import java.io.IOException;
- import java.io.InputStreamReader;
- import java.util.Comparator;
- import java.util.HashMap;
- import java.util.List;
- import java.util.Map;
- import java.util.TreeMap;
- import java.util.stream.Collectors;
- import java.util.stream.IntStream;
- /**
- * Partial exam II 2016/2017
- */
- public class FootballTableTest {
- public static void main(String[] args) throws IOException {
- FootballTable table = new FootballTable();
- BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
- reader.lines()
- .map(line -> line.split(";"))
- .forEach(parts -> table.addGame(parts[0], parts[1],
- Integer.parseInt(parts[2]),
- Integer.parseInt(parts[3])));
- reader.close();
- System.out.println("=== TABLE ===");
- System.out.printf("%-19s%5s%5s%5s%5s%5s\n", "Team", "P", "W", "D", "L", "PTS");
- table.printTable();
- }
- }
- // Your code here
- class Team {
- String name;
- int pobedi;
- int nereseni;
- int porazi;
- int primenigolovi;
- int dadenigolovi;
- public Team(String name, int dadenigolovi, int prinmenigolovi) {
- super();
- this.name = name;
- this.pobedi=0;
- this.porazi=0;
- this.nereseni=0;
- this.dadenigolovi=0;
- this.primenigolovi=0;
- this.setDadenigolovi(dadenigolovi);
- this.setPrinmenigolovi(prinmenigolovi);
- utakmica(dadenigolovi,prinmenigolovi);
- }
- public void utakmica(int a,int b) {
- int gol = a-b;
- if(gol>0) {
- pobedi++;
- }
- else if(gol==0) {
- nereseni++;
- }
- else {
- porazi++;
- }
- }
- public String getName() {
- return name;
- }
- public void setName(String name) {
- this.name = name;
- }
- public int getPobedi() {
- return pobedi;
- }
- public void setPobedi(int pobedi) {
- this.pobedi += pobedi;
- }
- public int getNereseni() {
- return nereseni;
- }
- public void setNereseni(int nereseni) {
- this.nereseni += nereseni;
- }
- public int getPorazi() {
- return porazi;
- }
- public void setPorazi(int porazi) {
- this.porazi += porazi;
- }
- public int getPrinmenigolovi() {
- return primenigolovi;
- }
- public void setPrinmenigolovi(int prinmenigolovi) {
- this.primenigolovi += prinmenigolovi;
- }
- public int getDadenigolovi() {
- return dadenigolovi;
- }
- public void setDadenigolovi(int dadenigolovi) {
- this.dadenigolovi += dadenigolovi;
- }
- public int bodovi() {
- return 3 * pobedi + nereseni;
- }
- public int golrazlika() {
- return dadenigolovi-primenigolovi;
- }
- public int odigrani() {
- return pobedi+nereseni+porazi;
- }
- @Override
- public String toString() {
- return String.format("%-15s%5d%5d%5d%5d%5d\n", name, odigrani(),pobedi,nereseni,porazi,bodovi());
- }
- }
- class FootballTable{
- Map<String,Team> map;
- public FootballTable() {
- map=new HashMap<>();
- }
- public void addGame(String homeTeam, String awayTeam, int homeGoals, int awayGoals) {
- map.computeIfPresent(homeTeam, (key,value) -> {
- value.utakmica(homeGoals, awayGoals);
- value.setDadenigolovi(homeGoals);
- value.setPrinmenigolovi(awayGoals);
- return value;
- });
- map.computeIfPresent(awayTeam, (key,value) -> {
- value.utakmica(awayGoals, homeGoals);
- value.setDadenigolovi(awayGoals);
- value.setPrinmenigolovi(homeGoals);
- return value;
- });
- map.computeIfAbsent(homeTeam, (key) ->{
- return new Team(homeTeam,homeGoals,awayGoals);
- });
- map.computeIfAbsent(awayTeam, (key) ->{
- return new Team(awayTeam,awayGoals,homeGoals);
- });
- }
- public void printTable() {
- List<Team> lista=map.values().stream()
- .sorted(Comparator.comparing(Team::bodovi)
- .thenComparing(Team::golrazlika).reversed()
- .thenComparing(Team::getName))
- .collect(Collectors.toList());
- for(int i=0;i<lista.size();i++) {
- System.out.print(String.format("%2d. %s", (i+1),lista.get(i).toString()));
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement