Converteren tussen een array en een set in Java

1. Overzicht

In dit korte artikel gaan we kijken converteren tussen een array en een Set - eerst met gewone java, vervolgens met Guava en de Commons Collections-bibliotheek van Apache.

Dit artikel maakt deel uit van de serie "Java - Back to Basic" hier op Baeldung.

2. Converteren Array naar een Set

2.1. Gebruik gewoon Java

Laten we eerst kijken hoe draai de array naar een Set met behulp van gewoon Java:

@Test openbare ongeldige gegevenUsingCoreJavaV1_whenArrayConvertedToSet_thenCorrect () {Geheel getal [] sourceArray = {0, 1, 2, 3, 4, 5}; Set targetSet = nieuwe HashSet (Arrays.asList (sourceArray)); }

Als alternatief kan de Set kan eerst worden gemaakt en vervolgens worden gevuld met de array-elementen:

@Test openbare ongeldige gegevenUsingCoreJavaV2_whenArrayConvertedToSet_thenCorrect () {Geheel getal [] sourceArray = {0, 1, 2, 3, 4, 5}; Set targetSet = nieuwe HashSet (); Collections.addAll (targetSet, sourceArray); }

2.2. Met Google Guava

Laten we vervolgens eens kijken de Guava-conversie van array naar set:

@Test openbare ongeldige gegevenUsingGuava_whenArrayConvertedToSet_thenCorrect () {Geheel getal [] sourceArray = {0, 1, 2, 3, 4, 5}; Stel targetSet = Sets.newHashSet (sourceArray); }

2.3. Apache Commons-verzamelingen gebruiken

Laten we tot slot de conversie uitvoeren met behulp van de Commons Collection-bibliotheek van Apache:

@Test openbare leegte gegevenUsingCommonsCollections_whenArrayConvertedToSet_thenCorrect () {Geheel getal [] sourceArray = {0, 1, 2, 3, 4, 5}; Set targetSet = nieuwe HashSet (6); CollectionUtils.addAll (targetSet, sourceArray); }

3. Zet Set om in Array

3.1. Gebruik gewoon Java

Laten we nu eens kijken naar het omgekeerde - het converteren van een bestaande set naar een array:

@Test openbare leegte gegevenUsingCoreJava_whenSetConvertedToArray_thenCorrect () {Set sourceSet = Sets.newHashSet (0, 1, 2, 3, 4, 5); Geheel getal [] targetArray = sourceSet.toArray (nieuw geheel getal [0]); }

Let daar op toArray (nieuwe T [0]) is de beste manier om de methode te gebruiken boven de toArray (nieuwe T [grootte]). Zoals Aleksey Shipilëv in zijn blogpost bewijst, lijkt het sneller, veiliger en schoner.

3.2. Guava gebruiken

Volgende - de Guava-oplossing:

@Test openbare ongeldig gegevenUsingGuava_whenSetConvertedToArray_thenCorrect () {Set sourceSet = Sets.newHashSet (0, 1, 2, 3, 4, 5); int [] targetArray = Ints.toArray (sourceSet); }

Merk op dat we de Ints API van Guava, dus deze oplossing is specifiek voor het gegevenstype waarmee we werken.

4. Conclusie

De implementatie van al deze voorbeelden en codefragmenten is te vinden op Github - dit is een op Maven gebaseerd project, dus het zou gemakkelijk moeten kunnen worden geïmporteerd en uitgevoerd zoals het is.