• Java 8 – Convert Map to LIST


    Java 8 – Convert Map to LIST

    Few Java examples to convert a Map to a List

    Map<String, String> map = new HashMap<>();

    // Convert all Map keys to a List
    List<String> result = new ArrayList(map.keySet());

    // Convert all Map values to a List
    List<String> result2 = new ArrayList(map.values());

    // Java 8, Convert all Map keys to a List
    List<String> result3 = map.keySet().stream()
    .collect(Collectors.toList());

    // Java 8, Convert all Map values to a List
    List<String> result4 = map.values().stream()
    .collect(Collectors.toList());

    // Java 8, seem a bit long, but you can enjoy the Stream features like filter and etc.
    List<String> result5 = map.values().stream()
    .filter(x -> !"apple".equalsIgnoreCase(x))
    .collect(Collectors.toList());

    // Java 8, split a map into 2 List, it works!
    // refer example 3 below

    1. Map To List
    For a simple Map to List conversion, just uses the below code :

    ConvertMapToList.java
    package com.mkyong;

    import java.util.ArrayList;
    import java.util.HashMap;
    import java.util.List;
    import java.util.Map;

    public class ConvertMapToList {

    public static void main(String[] args) {

    Map<Integer, String> map = new HashMap<>();
    map.put(10, "apple");
    map.put(20, "orange");
    map.put(30, "banana");
    map.put(40, "watermelon");
    map.put(50, "dragonfruit");

    System.out.println(" 1. Export Map Key to List...");

    List<Integer> result = new ArrayList(map.keySet());

    result.forEach(System.out::println);

    System.out.println(" 2. Export Map Value to List...");

    List<String> result2 = new ArrayList(map.values());

    result2.forEach(System.out::println);

    }

    }

    Output

    1. Export Map Key to List...
    50
    20
    40
    10
    30

    2. Export Map Value to List...
    dragonfruit
    orange
    watermelon
    apple
    banana

    Java 8 – Map To List
    For Java 8, you can convert the Map into a stream, process it and returns it back as a List

    ConvertMapToList.java
    package com.mkyong;

    import java.util.HashMap;
    import java.util.List;
    import java.util.Map;
    import java.util.stream.Collectors;

    public class ConvertMapToList {

    public static void main(String[] args) {

    Map<Integer, String> map = new HashMap<>();
    map.put(10, "apple");
    map.put(20, "orange");
    map.put(30, "banana");
    map.put(40, "watermelon");
    map.put(50, "dragonfruit");

    System.out.println(" 1. Export Map Key to List...");

    List<Integer> result = map.keySet().stream()
    .collect(Collectors.toList());

    result.forEach(System.out::println);

    System.out.println(" 2. Export Map Value to List...");

    List<String> result2 = map.values().stream()
    .collect(Collectors.toList());

    result2.forEach(System.out::println);

    System.out.println(" 3. Export Map Value to List..., say no to banana");
    List<String> result3 = map.keySet().stream()
    .filter(x -> !"banana".equalsIgnoreCase(x))
    .collect(Collectors.toList());

    result3.forEach(System.out::println);

    }

    }

    Output

    1. Export Map Key to List...
    50
    20
    40
    10
    30

    2. Export Map Value to List...
    dragonfruit
    orange
    watermelon
    apple
    banana

    3. Export Map Value to List..., say no to banana
    dragonfruit
    orange
    watermelon
    apple

    3. Java 8 – Convert Map into 2 List
    This example is a bit extreme, uses map.entrySet() to convert a Map into 2 List

    ConvertMapToList.java
    package com.mkyong;

    import java.util.ArrayList;
    import java.util.HashMap;
    import java.util.List;
    import java.util.Map;
    import java.util.stream.Collectors;

    //https://www.mkyong.com/java8/java-8-how-to-sort-a-map/
    public class ConvertMapToList {

    public static void main(String[] args) {

    Map<Integer, String> map = new HashMap<>();
    map.put(10, "apple");
    map.put(20, "orange");
    map.put(30, "banana");
    map.put(40, "watermelon");
    map.put(50, "dragonfruit");

    // split a map into 2 List
    List<Integer> resultSortedKey = new ArrayList<>();
    List<String> resultValues = map.entrySet().stream()
    //sort a Map by key and stored in resultSortedKey
    .sorted(Map.Entry.<Integer, String>comparingByKey().reversed())
    .peek(e -> resultSortedKey.add(e.getKey()))
    .map(x -> x.getValue())
    // filter banana and return it to resultValues
    .filter(x -> !"banana".equalsIgnoreCase(x))
    .collect(Collectors.toList());

    resultSortedKey.forEach(System.out::println);
    resultValues.forEach(System.out::println);

    }

    }

    Output

    //resultSortedKey
    50
    40
    30
    20
    10

    //resultValues
    dragonfruit
    watermelon
    orange
    apple

    http://www.mkyong.com/java8/java-8-convert-map-to-list/

  • 相关阅读:
    HDU 2073 无限的路
    HDU 2080 夹角有多大II
    if
    HDU 2094 产生冠军
    HDU 2076 夹角有多大(题目已修改,注意读题)
    HDU 2086 A1 = ?
    HDU 2069 Coin Change
    HDU 2095 find your present (2)
    android常用开发工具的用法
    android安装前期遇到的问题
  • 原文地址:https://www.cnblogs.com/shy1766IT/p/10024987.html
Copyright © 2020-2023  润新知