Utilizzo del metodo entrySet() in Java

Pubblicità

Scripta14

Nuovo Utente
Messaggi
95
Reazioni
8
Punteggio
25
Buongiorno,

per favore qualcuno mi potrebbe spiegare in modo semplice il funzionamento del metodo entrySet in Java.

Mi sto esercitando con gli Stream, ma quando cerco di utilizzare entrySet per creare una mappa, invertendo chiave e valore, eclipse non mi consente di utilizzare getKey e getValue.
Riporto qui sotto il codice

Ho creato la classe Appello:

import java.time.LocalDate;
import java.util.Scanner;

public class Appello {

private String corso;
private LocalDate data;
private int n;


public Appello(String corso, LocalDate data, int n) {
super();
this.corso = corso;
this.data = data;
this.n = n;
}


/**
* @return the corso
*/
public String getCorso() {
return corso;
}


/**
* @return the data
*/
public LocalDate getData() {
return data;
}


/**
* @return the n
*/
public int getN() {
return n;
}


/* (non-Javadoc)
* @see java.lang.Object#toString()
*/
@Override
public String toString() {
return "Appello [corso=" + corso + ", data=" + data + ", n=" + n + "]";
}

public static Appello genAppello(String linea){

Scanner s=new Scanner(linea);
Appello appello=null;

try{

String corso=s.next();
LocalDate data=LocalDate.parse(s.next());
int n=s.nextInt();
appello=new Appello(corso,data,n);

}
catch(Exception e)
{System.out.println(linea +" liena errata!!! ");}

finally {s.close();}
return appello;
}


}

Mentre nel Main cerco di creare una mappa con i corsi degli iscritti ordinati in ordine decrescente.
Prima ho fatto contare gli iscritti per corsi ordinati. Successivamente dovei raggruppare i corsi per n° di iscritti in ordine descrescente.
Qui sotto ho riportato il risultato come dovrebbe essere fatto, ma eclipse non mi trova ne getValue e ne getKey quando vado a richiamarli.
Aggiungo che quanto scritto sotto è stato preso da un eserciziario.

SortedMap<Integer,List<String>> iscrittiPerCorso1=listaAppelliDaFile1.stream()
.collect(groupingBy(Appello::getCorso,TreeMap::new,summingInt(Appello::getN)))
.entrySet().stream()
.collect(groupingBy(e->e.getValue(),()->new TreeMap<Integer,List<String>>(reverseOrder()),
mapping(e->e.getKey(), toList()));

Non capisco per quale motivo Eclipse me lo segnala.

Per favore qualcuno mi può dare una mano a capire il corretto funzionamento e dove sto sbagliando?

Grazie a tutti.
 
ciao usa il tag codice perchè altrimenti non si capisce nulla
 
ciao usa il tag codice perchè altrimenti non si capisce nulla
Grazie per aver letto la mia richiesta. Non sono molto pratico con il forum. Grazie per il suggerimento.
Per quanto riguarda la mia richiesta, sono riuscito a risolvere. Preso dalla disperazione, nonostante la segnalazione di errore di eclipse ho completato lo script, e dopo aver chiuso l'istruzione e salvato, eclipse non mi ha più segnalato nulla. Boh...

Grazie

Inviato da WAS-LX1A tramite App ufficiale di Tom\'s Hardware Italia Forum
 
Grazie per aver letto la mia richiesta. Non sono molto pratico con il forum. Grazie per il suggerimento.
Per quanto riguarda la mia richiesta, sono riuscito a risolvere. Preso dalla disperazione, nonostante la segnalazione di errore di eclipse ho completato lo script, e dopo aver chiuso l'istruzione e salvato, eclipse non mi ha più segnalato nulla. Boh...

Grazie

Inviato da WAS-LX1A tramite App ufficiale di Tom\'s Hardware Italia Forum
[ CODE ] [ / CODE] senza spazi e in mezzo metti codice
Java:
class Program {

    public static void main() {

    }
}
Aggiungi un =JAVA se il codice è in JAVA
 
Pubblicità
Pubblicità
Indietro
Top