Utilizzo del metodo entrySet() in Java

Scripta14

Nuovo Utente
95
8
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.
 

Skills07

Head of Development
Staff Forum
Utente Èlite
35,404
11,483
CPU
Ryzen 7 5800x
Dissipatore
Deepcool gammax l240 v2
Scheda Madre
Aourus Gigabyte X-470 ultra gaming
HDD
Samsung Evo 850 250gb ,2tb x 2 toshiba P300, 256 Ssd silicon power, Samsung evo plus 1tb nvme
RAM
32 gb G.Skill Tridentz 3200 mhz RGB
GPU
Zotac - RTX 3070 Ti Trinity OC
Monitor
ASUS TUF QHD 165hz IPS, ITEK GCF 165hz IPS QHD, Samsung Curvo 144hz QHD
PSU
Seasonic Focus 650w 80 platinum
Case
Coolermaster h500p
Periferiche
Asus Tuf Wireless
Net
Fibra Tim 100mb
OS
Windows 10 Pro 64 bit
ciao usa il tag codice perchè altrimenti non si capisce nulla
 

Scripta14

Nuovo Utente
95
8
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
 

_Achille

Utente Èlite
3,067
725
CPU
Intel i5-6600K @4.6 GHz
Dissipatore
Cryorig H5
Scheda Madre
ASRock Z170 Extreme 6
HDD
WesternDigital 1TB & Crucial MX200 250GB
RAM
Corsair Ven 16GB DDR4 2133MHz
GPU
Sapphire RX 580 Nitro+
Monitor
Dell S2418H
PSU
RM550X
Case
NZXT S340
Periferiche
Anne Pro 2, Razer Abyssus
OS
Windows 10 Pro
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
 

Ci sono discussioni simili a riguardo, dai un'occhiata!

Entra

oppure Accedi utilizzando
Discord Ufficiale Entra ora!

Discussioni Simili