Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Marvel's Wolverine, la recensione: Logan torna protagonista in un'avventura brutale e intensa
Marvel's Wolverine, la recensione: Logan torna protagonista in un'avventura brutale e intensa
Marvel's Wolverine porta Logan in un'avventura inedita, violenta e fortemente narrativa, costruita attorno alla sua natura di combattente e al difficile rapporto con il proprio passato. Insomniac Games punta su combattimenti spettacolari, progressione e personalizzazione, inserendo l'azione in un mondo segnato dalla persecuzione dei mutanti. Un viaggio intenso, che alterna mattanza, esplorazione e momenti sorprendentemente emotivi.
DJI Romo 2: tante novità lo rendono un robot completo
DJI Romo 2: tante novità lo rendono un robot completo
Romo 2 è la seconda generazione di robot lavapavimenti di DJI, un modello che si caratterizza per la precisione nel sistema di navigazione e per il funzionamento particolarmente silenzioso. Con le modifiche introdotte in questa seconda versione, e un posizionamento di prezzo più allineato alla concorrenza, rappresenta una valida alternativa sul mercato delle soluzioni di pulizia domestica
Sony Bravia 9 II: il True RGB alla prova, dove l'LCD sfida l'OLED
Sony Bravia 9 II: il True RGB alla prova, dove l'LCD sfida l'OLED
Il primo Sony con retroilluminazione True RGB alla prova del banco di misura e dei contenuti: luminanza enorme, colori accurati in HDR e un antiriflesso molto efficace. I limiti sono due sole HDMI 2.1 e il blooming fuori asse
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 09-11-2007, 21:59   #1
erkk84
Member
 
Iscritto dal: Dec 2006
Messaggi: 53
[Java] ordinamento classifica calcio

Ciao a tutti, devo fare un programmino che dato in input una cosa del genere:

4
Brazil
Norway
Morocco
Scotland
6
Brazil#2@1#Scotland
Norway#2@2#Morocco
Scotland#1@1#Norway
Brazil#3@0#Morocco
Morocco#3@0#Scotland
Brazil#1@2#Norway

dopo apposito parsing, mi dà in output una cosa del genere:

1) Brazil 6p, 3g (2-0-1), 3gd (6-3)
2) Norway 5p, 3g (1-2-0), 1gd (5-4)
3) Morocco 4p, 3g (1-1-1), 0gd (5-5)
4) Scotland 1p, 3g (0-1-2), -4gd (2-6)


Quindi ordinata per punteggio, in caso di parità per partite vinte, in caso per differenza goal.
Io ho scritto una cosa così per il momento:
Codice:
class Squadra implements Comparable<Squadra>{
    
    private String name;
    private int score;
    
    public Squadra(String name) {
        this.name = name;
        score= 0;
    }
    
    public String getName() {return name;}
    public int getScore() {return score;}
    public void setScore(int score) {this.score=score;}
    
    //Si mette il vincolo che ogni squadra abbia nome univoco.
    public int hashCode() {return name.hashCode();}
    public boolean equals(Object obj) {
        if(obj instanceof Squadra)
            return ((Squadra)obj).getName().equals(name);
        return false;
    }
    public String toString(){
        return name+" "+score+"p";
    }
    public int compareTo(Squadra s) {
        if(name.equals(s.getName()))
            return 0;
        int result = score-s.getScore();
        if(result==0)
            result = name.compareTo(s.getName());
        return result;
    }
}

 class Classifica {
    
    public HashMap map;
    public ArrayList squadre;
    
    
    public Classifica() {
        map  = new HashMap();
        squadre = new ArrayList();
    }
    
    public boolean add(String name) {
        if(map.containsKey(name)) {
            return false;
        }
        
        Squadra s = new Squadra(name);
        map.put(name, s);
        squadre.add(s);  
        return true;         
    }
    
    public boolean remove(String name) {
        if(!map.containsKey(name)) {
            return false;
        }
        Squadra s = (Squadra) map.remove(name);
        squadre.remove(s);
        return true;
    }
    
    public boolean addPoint(String name, int point) {
        if(!map.containsKey(name)) {
            return false;
        }
        Squadra s = (Squadra)map.get(name);
        s.setScore(s.getScore()+point);
        return true;
    }
    
    public int getScore(String name){
        Squadra s = (Squadra)map.get(name);
        return (s.getScore());        
    }
    
    public static void main(String args[]) {
        
        BufferedReader input;
        String in2,in3,in4,in5;
     
   Classifica clas = new Classifica();
                   
         try {
             System.out.println("Dammi il numero delle squadre: ");
        
             input = new BufferedReader(new InputStreamReader(System.in)); 
             
             in2 = input.readLine();
      
             System.out.println("Dammi i nomi delle squadre: ");
             
             for (int i=0;i<Integer.valueOf(in2);i++) {
             
                 in3 = input.readLine();
                 clas.add(in3);
            }
             
             System.out.println("Dammi il numero degli incontri: "); 
            
            in4 = input.readLine();
            
            System.out.println("Dammi gli incontri: ");
            
            for (int i=0;i<Integer.valueOf(in4);i++) {
                
                in5 = input.readLine();
                
                int g1 = in5.indexOf("#")+1;
                int g2 = in5.indexOf("@")+1;
                
              String goal1 = in5.substring(g1,g1+1);
              String goal2 = in5.substring(g2,g2+1);
                      
              if (Integer.valueOf(goal1)>Integer.valueOf(goal2)) {
                  clas.addPoint(in5.substring(0,g1-1),3); 
                  clas.addPoint(in5.substring(g2+2,in5.length()),0);
                }
              
              if (Integer.valueOf(goal1)<Integer.valueOf(goal2)) {
                  clas.addPoint(in5.substring(0,g1-1),0); 
                  clas.addPoint(in5.substring(g2+2,in5.length()),3);
                }
              
              if (Integer.valueOf(goal1)==Integer.valueOf(goal2)) {
                  clas.addPoint(in5.substring(0,g1-1),0); 
                  clas.addPoint(in5.substring(g2+2,in5.length()),0);
                    }
            }
         } catch (Exception ex) { }
    }
}
Praticamente mi sono bloccato sull'ordinamento;come faccio a ordinarli nella maniera sopraindicata?se poteste spiegarmi con del codice sarebbe ancora meglio..so che con le hashmap è impossibile fare un ordinamento epr valori, perciò bisognerebeb tirare fuori i valori in un'altra struttura e ordinare da li...ecco, a parole ho capito cosa bisogna fare ma non so da dove partire col codice..

garzie mille a tutti..ciao
erkk84 è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Marvel's Wolverine, la recensione: Logan torna protagonista in un'avventura brutale e intensa Marvel's Wolverine, la recensione: Logan torna p...
DJI Romo 2: tante novità lo rendono un robot completo DJI Romo 2: tante novità lo rendono un ro...
Sony Bravia 9 II: il True RGB alla prova, dove l'LCD sfida l'OLED Sony Bravia 9 II: il True RGB alla prova, dove l...
Geely EX5, un mese al volante: il SUV elettrico cinese che ci ha sorpreso (quasi) senza riserve Geely EX5, un mese al volante: il SUV elettrico ...
Mova Z70 Ultra Roller Complete: motore potente, rullo di lavaggio e l'IA a guidare Mova Z70 Ultra Roller Complete: motore potente, ...
La prima missione orbitale del razzo spa...
Servizi in streaming sempre più c...
Anteprima della Leapmotor B03X: inizia l...
Anthropic accusa la Cina: Claude utilizz...
I satelliti Rassvet (Starlink russo) di ...
Un agente IA ha risolto un problema su W...
Cina: la CMSA potrebbe cambiare parte de...
68 mensilità di bonus per i dipen...
Rocket Lab ha fatto ricorso contro la de...
Nutanix rende disponibile Azure Virtual ...
Il padrino del deep learning avverte: gl...
Il finto avviso "iPhone Storage is Full"...
Dietrofront in Cina, addio touchscreen p...
Un piccolo accessorio trasforma lo smart...
Dopo 370 anni il Cyphral Distich non è p...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 04:04.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v