Guava - Csatlakozzon és ossza meg a gyűjteményeket

1. Áttekintés

Ebben az oktatóanyagban megtanuljuk a használatát a Asztalos és Hasító a guavai könyvtárban. A gyűjteményekkel String-be konvertáljuk a Asztalos és egy String-et osztunk egy gyűjteményre a Hasító.

2. Konvertálás Lista -ba Húr Használata Asztalos

Kezdjük egy egyszerű példával a csatlakozáshoz Lista ba be Húr felhasználásával Asztalos. A következő példában csatlakozunk a Lista a nevek egybe Húr a „,” vesszőt elválasztóként használva:

@Test public void whenConvertListToString_thenConverted () {List names = Lists.newArrayList ("John", "Jane", "Adam", "Tom"); Karakterlánc eredménye = Joiner.on (","). Join (nevek); assertEquals (eredmény: "John, Jane, Adam, Tom"); }

3. Konvertálás Térkép nak nek Húr Használata Asztalos

Következő - nézzük meg, hogyan kell használni Asztalos átalakítani a Térkép a Húr. A következő példában azt használjuk withKeyValueSeparator () csatlakozni a kulcshoz annak értékével:

@Test public void whenConvertMapToString_thenConverted () {Térképbér = Maps.newHashMap (); fizetés.put ("John", 1000); fizetés.bevitel ("Jane", 1500); Karakterlánc eredménye = Joiner.on (",") .withKeyValueSeparator ("=") .join (fizetés); assertThat (eredmény, tartalmazzaString ("John = 1000")); assertThat (eredmény, tartalmazzaString ("Jane = 1500")); }

4. Csatlakozzon a beágyazott gyűjteményekhez

Most - nézzük meg, hogyan lehet a beágyazott gyűjteményeket a Húr. A következő példában egyesítjük az egyes átalakítások eredményét Lista a Húr:

@Test public void whenJoinNestedCollections_thenJoined () {List beágyazott = Lists.newArrayList (Lists.newArrayList ("alma", "banán", "narancs"), Lists.newArrayList ("macska", "kutya", "madár"), Lists.newArrayList ("John", "Jane" "," Ádám ")); Karakterlánc eredménye = Joiner.on (";"). Join (Iterables.transform (beágyazott, új függvény)() {@A nyilvános karakterlánc felülbírálása érvényes (Lista bevitele) {return Joiner.on ("-"). Join (input); }})); assertThat (az eredmény tartalmazza a Stringet ("alma-banán-narancs")); assertThat (eredmény, tartalmazzaString ("macska-kutya-madár")); assertThat (az eredmény tartalmazza a Stringet ("alma-banán-narancs")); }

5. Kezelje a null értékeket használat közben Asztalos

Most - nézzük meg a nulla értékek kezelésének különböző módjait az Asztalos használata közben.

Nak nek null értékek kihagyása miközben csatlakozik a gyűjteményhasználathoz skipNulls () mint a következő példában:

@Test public void whenConvertListToStringAndSkipNull_thenConverted () {List names = Lists.newArrayList ("John", null, "Jane", "Adam", "Tom"); Karakterlánc eredménye = Joiner.on (","). SkipNulls (). Join (nevek); assertEquals (eredmény: "John, Jane, Adam, Tom"); }

Ha nem akarja kihagyni a null értékeket és szeretné helyette cserélje ki őket, használja useForNull () mint a következő példában:

@Test public void whenUseForNull_thenUsed () {List list = Lists.newArrayList ("John", null, "Jane", "Adam", "Tom"); Karakterlánc eredménye = Joiner.on (","). UseForNull ("névtelen"). Join (nevek); assertEquals (eredmény: "John, névtelen, Jane, Adam, Tom"); }

Vegye figyelembe, hogy useForNull () nem változtatja meg az eredeti listát, csak a csatlakozás kimenetét érinti.

6. Hozzon létre Lista Tól től Húr Használata Hasító

Most - nézzük meg, hogyan kell felosztani a Húr ba be Lista. A következő példában a „-” elválasztót használjuk a bemenet felosztásához Húr nak nek Lista:

@Test public void whenCreateListFromString_thenCreated () {String input = "alma - banán - narancs"; Lista eredménye = Splitter.on ("-"). TrimResults () .splitToList (input); assertThat (az eredmény tartalmazza ("alma", "banán", "narancs")); }

Vegye figyelembe, hogy trimResults () eltávolítja a vezető és a záró szóközt az eredményül kapott alsorokból.

7. Hozzon létre Térkép Tól től Húr Használata Hasító

Következő - nézzük meg, hogyan hozhat létre térképet a karakterláncból a Splitter használatával. A következő példában azt használjuk withKeyValueSeparator () megosztani a Húr ba be Térkép:

@Test public void whenCreateMapFromString_thenCreated () {String input = "John = first, Adam = second"; Térkép eredménye = Splitter.on (",") .WithKeyValueSeparator ("=") .split (input); assertEquals ("első", eredmény.get ("János")); assertEquals ("második", eredmény.get ("Ádám")); }

8. Hasadás Húr Több elválasztóval

Most - nézzük meg, hogyan kell felosztani a Húr több elválasztóval. A következő példában mindkettőt használjuk. és „,” hogy feloszthassuk Húr:

@Test public void whenSplitStringOnMultipleSeparator_thenSplit () {String input = "apple.banana ,, orange ,,."; Lista eredménye = Splitter.onPattern ("[.,]") .OmitEmptyStrings () .splitToList (input); assertThat (az eredmény tartalmazza ("alma", "banán", "narancs")); }

Vegye figyelembe, hogy omitEmptyStrings () figyelmen kívül hagyja az üres karakterláncokat, és nem adja hozzá őket az eredményhez Lista.

9. Osztott a Húr meghatározott hosszon

Következő - vessünk egy pillantást a Húr meghatározott hosszúságú. A következő példában felosztottuk Húr 3 karakterenként:

@Test public void whenSplitStringOnSpecificLength_thenSplit () {String input = "Hello world"; Lista eredménye = Splitter.fixedLength (3) .splitToList (input); assertThat (eredmény, tartalmazza ("Hel", "lo", "wor", "ld")); }

10. Korlátozza az osztott eredményt

Végül - nézzük meg, hogyan lehet korlátozni az osztott eredményt. Ha azt szeretné, hogy Hasító nak nek hagyja abba a szétválasztást meghatározott tételszám után - felhasználás határ() mint a következő példában:

@Test public void whenLimitSplitting_thenLimited () {String input = "a, b, c, d, e"; Lista eredménye = Splitter.on (",") .limit (4) .splitToList (input); assertEquals (4, eredmény.méret ()); assertThat (az eredmény tartalmazza ("a", "b", "c", "d, e")); }

11. Következtetés

Ebben az oktatóanyagban bemutattuk, hogyan kell használni a Asztalos és Hasító Guava-ban, hogy különféle átalakításokat hajtson végre a gyűjtemények és a húrok között.

Mindezen példák és kódrészletek megvalósítása megtalálható a guava github projektemben - ez egy Eclipse alapú projekt, ezért könnyen importálhatónak és futtathatónak kell lennie.


$config[zx-auto] not found$config[zx-overlay] not found