Newsgroup: it.comp.java
Titolo: get_Key_by_Value E get_Value_by_Key (aiuto mi sono impantanato)

Ciao ragazzi,
mi sono bloccato di brutto su un passaggio di programmazione
semplicissimo..
..ho 1000 dubbi!!
Devo creare una struttura/classe enumerativa (i cui valori verranno
richiesti da altre classi);
in poche parole devo immagazinare delle coppie di dati così composte:
(String nome_della_competizione, int ID_della_competizione)
competizione: "serie_A" id_competizione: 10
competizione: "serie_B" id_competizione: 15
competizione: "serie_C1_girone_A" id_competizione: 23
...
(come vedete gli ID non sono progressivi, devo poterli scegliere io)
Questo lavoro mi serve perchè poi una certa classe richiederà questa
struttura per, dato un valore numerico ID, recuperare il nome della
competizione,
mentre un'altra classe dovrà farà l'altro lavoro (data una stringa ne
recupererà l'ID numerico)
Il mio problema è che non riesco a capire/decidermi se usare una enum
oppure una lista o una treemap..
...e peggior cosa non riesco a buttare giù 2 righe per creare i due
metodi che si occupano
1) dato un valore ID numerico, ne recupera la chiave
"nome_della_competizione"
2) data una chiave String "nome_della_competizione", mi ritorna il suo
valore ID numerico
Raga, mi aiutate Voi
So che è semplice, ma CORPO DI MILLE BALENE mi sono bloccato e non
riesco ad implementare questa cosa..
Grazie a tutti,
aspetto i vostri geniali, E PIENI DI ESPERIENZA, consigli
;)

import java.util.List;
import java.util.ArrayList;
public class Competizione {
   private List<String> listA;
   private List<Integer> listB;
   // COSTRUTTORE
   public Competizione() {
   listA = new ArrayList<String>();
   listB = new ArrayList<Integer>();
        put ("serie_A", 		1);	//  1
	put ("champions_league", 	2);	//  2
        put ("serie_B", 		3);	//  3
        put ("coppa_uefa", 		4);	//  4
        put ("coppa_italia", 		5);	//  5
        put ("amichevole", 		6);	//  6
        put ("coppa_intercontinentale", 7);	//  7
   put ("preliminari_Champions_league", 8); 	//  8
        put ("impegno_nazionale", 	9);	//  9
        put ("serie_C1_girone_A", 	1);	// 10
        put ("serie_C1_girone_B",      11);	// 11
        put ("intertoto", 	       12);	// 12
   }
   public int get (String $NMcompetition)
   {
	int ret = listA.indexOf( $NMcompetition );
	if (ret == -1) return -1;
	else return listB.get(  ret  );
   }
   public String get (int $IDcompetition)
   {
	int ret = listB.indexOf( $IDcompetition );
	if (ret == -1) return "_";
	return listA.get(  ret  );
   }
   private void put (String $nome_della_competizione, Integer
$id_della_competizione)
   {
	listA.add( $nome_della_competizione );
         listB.add( $id_della_competizione );
   }
}
E POI PROVA QUESTA CLASSE Competizione CON QUEST'ALTRA
provaCompetizione
public class provaCompetizione {
	public static void main(String[] args)
	{
		Competizione c = new Competizione();
        	System.out.println("Index location of the String \"serie_A\"
is: " + c.get("serie_A") );
        	System.out.println("Index location of the ID     \"10\"
is: " + c.get(10)        );
        	System.out.println("Index location of the String \"serie_Z\"
is: " + c.get("serie_Z") );
        	System.out.println("Index location of the ID
\"1090\"      is: " + c.get(1090)    );
	}
}
CIAO,
SPERO DI ESSERTI STATO UTILE

 SPERO DI ESSERTI STATO UTILE
Si, GRAZIE,
sei stao utilissimo
Grazie ancora
:)