Salve, ho un piccolo problema nello scorrere una lista per determinare se un dato valore le appartiene o no:
In poche parole ho una regola di produzione del parser, che dovrebbe cercare se nella ListaAttributo c'è il termine Idenficatore:nome ed una volta trovato, fare gli opportuni calcoli!codice:valorizzazione ::= punteggio:punt identificatore:nome {: //Recupera l'idenficatore della prodotto selezionato String identificatoreClasse = (String)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-3)).value; //Ricerca ed individua nella hash table l'idenficatore corrispondente alla classe corrente (identificatoreClasse) List lista_attributi = (List)parser.Tabellahash.get(identificatoreClasse); //Ricerca ed individua nella lista il peso associato a questo attributo int peso = ((Attributo)lista_attributi.get(lista_attributi.indexOf(new Attributo(nome)))).peso; for(int i=0;i<lista_attributi.size();i++){ if(lista_attributi.get(i).equals(nome)){ System.out.println(lista_attributi.get(i) ; ) ; RESULT = new Integer(peso * punt.intValue());} else { //Eseguo il calcolo,moltiplica il peso dell'attributo per il valore associato ad esso RESULT = new Integer(peso * 1); } } :};
Attributo è una semplice classe allocata quando serve per contenere i dati che si trovano nella hashmap.
Vi sarei grata se qualcuno avesse qualche suggerimento! Sto fondendo!![]()

Rispondi quotando