Hvordan konvertere en matrise til et sett i Java

Jeg vil gjerne konvertere en matrise til et sett i Java. Det er noen åpenbare måter å gjøre dette på (dvs. med en løkke), men jeg vil gjerne ha noe litt penere, noe som:

java.util.Arrays.asList(Object[] a);

Noen ideer?

Løsning

Som dette:

Set mySet = new HashSet(Arrays.asList(someArray));

I Java 9+, hvis ikke modifiserbart sett er ok:

Set mySet = Set.of(someArray);

I Java 10+ kan den generiske typeparameteren utledes fra arrays-komponenttypen:

var mySet = Set.of(someArray);
Kommentarer (14)

Etter at du har gjort Arrays.asList(array), kan du utføre Set set = new HashSet(list);.

Her er et eksempel på en metode du kan skrive:

public  Set GetSetFromArray(T[] array) {
    return new HashSet(Arrays.asList(array));
}
Kommentarer (2)

new HashSet(Arrays.asList(Object[] a));

Men jeg tror dette ville være mer effektivt:

final Set s = new HashSet();    
for (Object o : a) { s.add(o); }         
Kommentarer (3)