Java streams map to string

Содержание
  1. java-map-to-string-conversion
  2. 2. Basic Map Example
  3. 3. Convert a Map to a String by Iterating
  4. 4. Convert a Map to a String Using Java Streams
  5. 5. Convert a Map to a String Using Guava
  6. 7. Convert a String to a Map Using Streams
  7. 8. Convert a String to a Map Using Guava
  8. 9. Conclusion
  9. Преобразование Map в String в Java
  10. 2. Пример основной карты ​
  11. 3. Преобразование карты в строку путем итерации​
  12. 4. Преобразование карты в строку с использованием потоков Java .​
  13. 5. Преобразование карты в строку с помощью гуавы​
  14. 6. Преобразование карты в строку с помощью Apache Commons​
  15. 7. Преобразование строки в карту с использованием потоков​
  16. 8. Преобразование строки в карту с помощью гуавы​
  17. 9. Заключение​
  18. Convert Java Stream to String
  19. Using Collectors.joining
  20. Using Stream.reduce
  21. Преобразование карты в строку в Java
  22. 1. Обзор
  23. 2. Пример базовой карты
  24. 3. Преобразуйте карту в строку путем итерации
  25. 4. Преобразуйте карту в строку с помощью потоков Java
  26. 5. Преобразуйте карту в строку с помощью Guava
  27. 7. Преобразуйте строку в карту с помощью потоков
  28. 9. Заключение
  29. Читайте ещё по теме:

java-map-to-string-conversion

In this tutorial, we’ll focus on conversion from a Map to a String and the other way around.

First, we’ll see how to achieve these using core Java methods, and afterward, we’ll use some third-party libraries.

2. Basic Map Example

In all examples, we’re going to use the same Map implementation:

Map wordsByKey = new HashMap<>(); wordsByKey.put(1, "one"); wordsByKey.put(2, "two"); wordsByKey.put(3, "three"); wordsByKey.put(4, "four");

3. Convert a Map to a String by Iterating

Let’s iterate over all the keys in our Map and, for each of them, append the key-value combination to our resulting StringBuilder object.

Читайте также:  Serial port php windows

For formatting purposes, we can wrap the result in curly brackets:

public String convertWithIteration(Map map) < StringBuilder mapAsString = new StringBuilder("<"); for (Integer key : map.keySet()) < mapAsString.append(key + "=" + map.get(key) + ", "); >mapAsString.delete(mapAsString.length()-2, mapAsString.length()).append(">"); return mapAsString.toString(); >

To check if we converted our Map correctly, let’s run the following test:

@Test public void givenMap_WhenUsingIteration_ThenResultingStringIsCorrect() < String mapAsString = MapToString.convertWithIteration(wordsByKey); Assert.assertEquals("", mapAsString); >

4. Convert a Map to a String Using Java Streams

To perform conversion using streams, we first need to create a stream out of the available Map keys.

Secondly, we’re mapping each key to a human-readable String.

Finally, we’re joining those values, and, for the sake of convenience, we’re adding some formatting rules using the Collectors.joining() method:

public String convertWithStream(Map map) < String mapAsString = map.keySet().stream() .map(key ->key + "=" + map.get(key)) .collect(Collectors.joining(", ", "")); return mapAsString; >

5. Convert a Map to a String Using Guava

Let’s add Guava into our project and see how we can achieve the conversion in a single line of code:

 com.google.guava guava 27.0.1-jre 

To perform the conversion using Guava’s Joiner class, we need to define a separator between different Map entries and a separator between keys and values:

public String convertWithGuava(Map map) < return Joiner.on(",").withKeyValueSeparator(" sect2">

6. Convert a Map to a String Using Apache Commons

To use Apache Commons, let’s add the following dependency first:

 org.apache.commons commons-collections4 4.2 

The joining is very straightforward – we just need to call the StringUtils.join method:

public String convertWithApache(Map map)

One special mention goes to the debugPrint method available in Apache Commons. It is very useful for debugging purposes.

MapUtils.debugPrint(System.out, "Map as String", wordsByKey);

The debug text will be written to the console:

Map as String = < 1 = one java.lang.String 2 = two java.lang.String 3 = three java.lang.String 4 = four java.lang.String >java.util.HashMap

7. Convert a String to a Map Using Streams

To perform conversion from a String to a Map, let’s define where to split on and how to extract keys and values:

public Map convertWithStream(String mapAsString) < Mapmap = Arrays.stream(mapAsString.split(",")) .map(entry -> entry.split(" sect2"> 

8. Convert a String to a Map Using Guava

A more compact version of the above is to rely on Guava to do the splitting and conversion for us in a one-line process:

public Map convertWithGuava(String mapAsString)

9. Conclusion

In this tutorial, we saw how to convert a Map to a String and the other way around using both core Java methods and third-party libraries.

The implementation of all of these examples can be found over on GitHub.

Источник

Преобразование Map в String в Java

В этом руководстве мы сосредоточимся на преобразовании карты в строку и наоборот.

Сначала мы увидим, как добиться этого с помощью основных методов Java, а затем воспользуемся некоторыми сторонними библиотеками.

2. Пример основной карты ​

Во всех примерах мы будем использовать одну и ту же реализацию Map :

 MapInteger, String> wordsByKey = new HashMap>();  wordsByKey.put(1, "one");  wordsByKey.put(2, "two");  wordsByKey.put(3, "three");  wordsByKey.put(4, "four"); 

3. Преобразование карты в строку путем итерации​

Давайте переберем все ключи в нашей карте и для каждого из них добавим комбинацию ключ-значение к нашему результирующему объекту StringBuilder .

Для целей форматирования мы можем заключить результат в фигурные скобки:

 public String convertWithIteration(MapInteger, ?> map)    StringBuilder mapAsString = new StringBuilder(");   for (Integer key : map.keySet())    mapAsString.append(key + "=" + map.get(key) + ", ");   >   mapAsString.delete(mapAsString.length()-2, mapAsString.length()).append(">");   return mapAsString.toString();   > 

Чтобы проверить, правильно ли мы преобразовали нашу карту , давайте запустим следующий тест:

 @Test   public void givenMap_WhenUsingIteration_ThenResultingStringIsCorrect()    String mapAsString = MapToString.convertWithIteration(wordsByKey);   Assert.assertEquals("", mapAsString);   > 

4. Преобразование карты в строку с использованием потоков Java .​

Чтобы выполнить преобразование с использованием потоков, нам сначала нужно создать поток из доступных ключей Map .

Во-вторых, мы сопоставляем каждый ключ с удобочитаемой строкой .

Наконец, мы объединяем эти значения и для удобства добавляем некоторые правила форматирования с помощью метода Collectors.joining() :

 public String convertWithStream(MapInteger, ?> map)    String mapAsString = map.keySet().stream()   .map(key -> key + "=" + map.get(key))   .collect(Collectors.joining(", ", ", ">"));   return mapAsString;   > 

5. Преобразование карты в строку с помощью гуавы​

Давайте добавим Guava в наш проект и посмотрим, как мы можем добиться преобразования в одной строке кода:

 dependency>   groupId>com.google.guavagroupId>   artifactId>guavaartifactId>   version>31.0.1-jreversion>   dependency> 

Чтобы выполнить преобразование с использованием класса Joiner в Guava , нам нужно определить разделитель между различными записями карты и разделитель между ключами и значениями:

 public String convertWithGuava(MapInteger, ?> map)    return Joiner.on(",").withKeyValueSeparator("=").join(map);   > 

6. Преобразование карты в строку с помощью Apache Commons​

Чтобы использовать Apache Commons , давайте сначала добавим следующую зависимость:

 dependency>   groupId>org.apache.commonsgroupId>   artifactId>commons-collections4artifactId>   version>4.2version>   dependency> 

Соединение очень простое — нам просто нужно вызвать метод StringUtils.join :

 public String convertWithApache(Map map)    return StringUtils.join(map);   > 

Отдельного упоминания заслуживает метод debugPrint , доступный в Apache Commons. Это очень полезно для целей отладки.

 MapUtils.debugPrint(System.out, "Map as String", wordsByKey); 

отладочный текст будет записан в консоль:

 Map as String =      1 = one java.lang.String  2 = two java.lang.String  3 = three java.lang.String  4 = four java.lang.String  > java.util.HashMap 

7. Преобразование строки в карту с использованием потоков​

Чтобы выполнить преобразование из String в Map , давайте определим, где разбивать и как извлекать ключи и значения:

 public MapString, String> convertWithStream(String mapAsString)    MapString, String> map = Arrays.stream(mapAsString.split(","))   .map(entry -> entry.split("="))   .collect(Collectors.toMap(entry -> entry[0], entry -> entry[1]));   return map;   > 

8. Преобразование строки в карту с помощью гуавы​

Более компактная версия вышеизложенного состоит в том, чтобы полагаться на Guava, который выполняет разделение и преобразование для нас в однострочном процессе:

 public MapString, String> convertWithGuava(String mapAsString)    return Splitter.on(',').withKeyValueSeparator('=').split(mapAsString);   > 

9. Заключение​

В этой статье мы увидели, как преобразовать карту в строку и наоборот, используя как основные методы Java, так и сторонние библиотеки.

Реализацию всех этих примеров можно найти на GitHub .

Источник

Convert Java Stream to String

On this page we will learn how to convert Java Stream to String. To convert stream into string, we can use following methods.
1. Collectors.joining
2. Stream.reduce
Now let us discuss them using examples.

Contents

Using Collectors.joining

The Collectors.joining returns a Collector that concatenates the input elements, separated by the specified delimiter, in encounter order.

public static Collector joining(CharSequence delimiter)

The Collector is passed as argument to collect method that performs a mutable reduction operation on the elements using a Collector .

 R collect(Collector collector)
package com.concretepage; import java.util.ArrayList; import java.util.Arrays; import java.util.List; import java.util.stream.Collectors; import java.util.stream.Stream; public class UsingJoining < public static void main(String[] args) < //example 1 String s1 = Stream.of("A", "B", "C", "D").collect(Collectors.joining()); System.out.println(s1); //example 2 Listlist = new ArrayList<>(); list.add("Gauri"); list.add("Lakshmi"); list.add("Saraswati"); String s2 = list.stream().collect(Collectors.joining(",")); System.out.println(s2); //example 3 List cityList = Arrays.asList(new City(1, "Varanasi"), new City(2, "Prayag"), new City(3, "Ayodhya")); String s3 = cityList.stream() .map(c -> c.getName()) .collect(Collectors.joining("|")); System.out.println(s3); //example 4 String s4 = cityList.stream() .map(c -> new StringBuffer(c.getName()).append("-").append(c.getId())) .collect(Collectors.joining("|")); System.out.println(s4); > > class City < private int id; private String name; public City(int id, String name) < this.id = id; this.name = name; >//Sets and Gets >
ABCD Gauri,Lakshmi,Saraswati Varanasi|Prayag|Ayodhya Varanasi-1|Prayag-2|Ayodhya-3

Using Stream.reduce

The Stream.reduce performs a reduction on the elements of this stream, using an associative accumulation function and returns Optional .

Optional reduce(BinaryOperator accumulator)
package com.concretepage; import java.util.ArrayList; import java.util.List; import java.util.stream.Stream; public class UsingReduce < public static void main(String[] args) < //example 1 String s1 = Stream.of(1, 2, 3, 4).map(e ->e.toString()).reduce("", String::concat); System.out.println(s1); //example 2 List list = new ArrayList<>(); list.add("Gauri"); list.add("Lakshmi"); list.add("Saraswati"); String s2 = list.stream(). reduce((x, y) -> new StringBuffer(x).append("-").append(y).toString()).get(); System.out.println(s2); //example 3 String s3 = Stream.of(new City(1, "Varanasi"), new City(2, "Prayag"), new City(3, "Ayodhya")) .map(c -> c.getName()) .reduce((x, y) -> new StringBuffer(x).append("-").append(y).toString()).get(); System.out.println(s3); > >
1234 Gauri-Lakshmi-Saraswati Varanasi-Prayag-Ayodhya

Источник

Преобразование карты в строку в Java

Узнайте, как преобразовать карту в строку и наоборот, используя как основные методы Java, так и сторонние библиотеки.

1. Обзор

В этом уроке мы сосредоточимся на преобразовании из Map в String и наоборот.

Во-первых, мы посмотрим, как достичь этого с помощью основных методов Java, а затем мы будем использовать некоторые сторонние библиотеки.

2. Пример базовой карты

Во всех примерах мы будем использовать одну и ту же реализацию Map :

Map wordsByKey = new HashMap<>(); wordsByKey.put(1, "one"); wordsByKey.put(2, "two"); wordsByKey.put(3, "three"); wordsByKey.put(4, "four");

3. Преобразуйте карту в строку путем итерации

Давайте переберем все ключи в нашей карте и для каждого из них добавим комбинацию ключ-значение к нашему результирующему объекту StringBuilder |.

Для целей форматирования мы можем заключить результат в фигурные скобки:

public String convertWithIteration(Map map) < StringBuilder mapAsString = new StringBuilder("<"); for (Integer key : map.keySet()) < mapAsString.append(key + "=" + map.get(key) + ", "); >mapAsString.delete(mapAsString.length()-2, mapAsString.length()).append(">"); return mapAsString.toString(); >

Чтобы проверить, правильно ли мы преобразовали нашу карту , давайте проведем следующий тест:

@Test public void givenMap_WhenUsingIteration_ThenResultingStringIsCorrect() < String mapAsString = MapToString.convertWithIteration(wordsByKey); Assert.assertEquals("", mapAsString); >

4. Преобразуйте карту в строку с помощью потоков Java

Чтобы выполнить преобразование с помощью потоков, нам сначала нужно создать поток из доступных ключей Map .

Во-вторых, мы сопоставляем каждый ключ с читаемой человеком строкой .

Наконец, мы объединяем эти значения и для удобства добавляем некоторые правила форматирования с помощью метода Collectors.joining() :

public String convertWithStream(Map map) < String mapAsString = map.keySet().stream() .map(key ->key + "=" + map.get(key)) .collect(Collectors.joining(", ", "")); return mapAsString; >

5. Преобразуйте карту в строку с помощью Guava

Давайте добавим Guava в наш проект и посмотрим, как мы можем добиться преобразования в одной строке кода:

 com.google.guava guava 27.0.1-jre 

Чтобы выполнить преобразование с помощью класса Joiner Guava, нам нужно определить разделитель между различными записями Map и разделитель между ключами и значениями:

public String convertWithGuava(Map map) < return Joiner.on(",").withKeyValueSeparator(" https://search.maven.org/search?q=a:commons-collections4%20AND%20g:org.apache.commons" rel="noopener noreferrer" target="_blank">Apache Commons , давайте сначала добавим следующую зависимость:

"> org.apache.commons commons-collections4 4.2 

Соединение очень простое – нам просто нужно вызвать StringUtils.метод join :

public String convertWithApache(Map map)

Одно особое упоминание относится к методу debug Print , доступному в Apache Commons. Это очень полезно для целей отладки.

MapUtils.debugPrint(System.out, "Map as String", wordsByKey);

Отладочный текст будет записан на консоль:

Map as String = < 1 = one java.lang.String 2 = two java.lang.String 3 = three java.lang.String 4 = four java.lang.String >java.util.HashMap

7. Преобразуйте строку в карту с помощью потоков

Чтобы выполнить преобразование из String в Map , давайте определим, где нужно разделить и как извлечь ключи и значения:

public Map convertWithStream(String mapAsString) < Mapmap = Arrays.stream(mapAsString.split(",")) .map(entry -> entry.split(" wp-block-codemirror-blocks-code-block code-block">
">public Map convertWithGuava(String mapAsString)

9. Заключение

В этом уроке мы рассмотрели, как преобразовать Map в String и наоборот, используя как основные методы Java, так и сторонние библиотеки.

Реализацию всех этих примеров можно найти на GitHub .

Читайте ещё по теме:

Источник

Оцените статью