Visualizzazione dei risultati da 1 a 5 su 5

Discussione: java.util.Set

  1. #1
    Utente di HTML.it L'avatar di ilGuglia
    Registrato dal
    Dec 2015
    residenza
    Sicilia
    Messaggi
    46

    java.util.Set

    Mentre guardavo il sorgente di un collega per studiare i suoi metodi ho notato che utilizzava variabili di tipo set... ho capito che è una collezione di valori impostata in modo che non ve ne siano due uguali (ho capito male?) ma qualcuno mi spiega meglio come e perché si utilizza?

    Baci, ilGuglia

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da ilGuglia Visualizza il messaggio
    Mentre guardavo il sorgente di un collega per studiare i suoi metodi ho notato che utilizzava variabili di tipo set... ho capito che è una collezione di valori impostata in modo che non ve ne siano due uguali (ho capito male?) ma qualcuno mi spiega meglio come e perché si utilizza?
    Il Set (la interfaccia) è la astrazione che rappresenta un "insieme" di elementi distinti, quindi non duplicati, e senza di per sé un qualche criterio di ordinamento degli elementi. Una implementazione concreta può imporre un certo ordinamento (esempio: TreeSet).
    Il concetto di uguaglianza tra elementi (al fine di escludere duplicati) è basato sul equals() degli oggetti. E per i set basati su hash-table interna entra in gioco anche il hashCode() degli oggetti. Pertanto la proprietà di avere valori non duplicati non dipende tanto dalla collezione ma dalla correttezza di equals e/o hashCode. Se questi fossero implementati in modo inappropriato in una classe .... di duplicati nel set ce ne possono essere e con risultati molto negativi.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    Utente di HTML.it L'avatar di ilGuglia
    Registrato dal
    Dec 2015
    residenza
    Sicilia
    Messaggi
    46
    Ah, quindi dev'essere compito del programmatore far si che non vi siano duplicati, pensavo fosse una cosa automatica

  4. #4
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da ilGuglia Visualizza il messaggio
    Ah, quindi dev'essere compito del programmatore far si che non vi siano duplicati, pensavo fosse una cosa automatica
    Il programmatore che scrive una classe specifica (es. Persona) i cui oggetti saranno contenuti in un set (o se sono chiavi nelle map), deve solo assicurarsi di aver scritto la classe in modo "ragionevolmente" corretto, in particolare riguardo equals, hashCode e compareTo/compare (per Comparable/Comparator) a seconda di quale strategia usa la collezione per cercare e confrontare gli elementi.
    Tutto qui.
    Ultima modifica di andbin; 08-01-2016 a 11:50
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  5. #5
    Utente di HTML.it L'avatar di ilGuglia
    Registrato dal
    Dec 2015
    residenza
    Sicilia
    Messaggi
    46
    Quote Originariamente inviata da andbin Visualizza il messaggio
    Il programmatore che scrive una classe specifica (es. Persona) i cui oggetti saranno contenuti in un set (o se sono chiavi nelle map), deve solo assicurarsi di aver scritto la classe in modo "ragionevolmente" corretto, in particolare riguardo equals, hashCode e compareTo/compare (per Comparable/Comparator) a seconda di quale strategia usa la collezione per cercare e confrontare gli elementi.
    Tutto qui.
    Grazie mille Adesso mi è molto più chiaro il suo utilizzo

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.