English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Java 기본 튜토리얼

Java 流程控制

Java 数组

Java 面向对象(I)

Java 面向对象(II)

Java 面向对象(III)

Java 예외 처리

Java 列表(List)

Java Queue(队列)

Java Map集合

Java Set集合

Java 输入输出(I/O)

Java Reader/Writer

Java 其他主题

Java程序将集合(HashMap)转换为列表

Java 예제 전체

在该程序中,您将学习将Java map集合转换为列表的各种技巧。

示例1:将map转换为列表

import java.util.*;
public class MapList {
    public static void main(String[] args) {
        Map<Integer, String> map = new HashMap<>();
        map.put(1, "a");
        map.put(2, "b");
        map.put(3, "c");
        map.put(4, "d");
        map.put(5, "e");
        List<Integer> keyList = new ArrayList(map.keySet());
        List<String> valueList = new ArrayList(map.values());
        System.out.println("Key List: ", + keyList);
        System.out.println("Value List: ", + valueList);
    }
}

运行该程序时,输出为:

Key List: [1, 2, 3, 4, 5]
Value List: [a, b, c, d, e]

在上面的程序中,我们有一个名为的Integer和String的map集合。由于map包含键值对,因此我们需要两个列表来存储它们,即keyList键和valueList值。

我们使用map的keySet()方法获取所有键,并从它们创建了一个ArrayList keyList。 同样,我们使用map的values()方法获取所有值,并从中创建一个ArrayList valueList。

示例2:使用流将map转换为列表

import java.util.*;
import java.util.stream.Collectors;
public class MapList {
    public static void main(String[] args) {
        Map<Integer, String> map = new HashMap<>();
        map.put(1, "a");
        map.put(2, "b");
        map.put(3, "c");
        map.put(4, "d");
        map.put(5, "e");
        List<Integer> keyList = map.keySet().stream().collect(Collectors.toList());
        List<String> valueList = map.values().stream().collect(Collectors.toList());
        System.out.println("Key List: ", + keyList);
        System.out.println("Value List: ", + valueList);
    }
}

이 프로그램의 출력은 예제와1같습니다.

위의 프로그램에서는 ArrayList 생성자를 사용하지 않고 stream()를 사용하여 맵을 목록으로 변환했습니다.

저희는 Collector의 toList()를 매개변수로 전달하여 collect() 메서드를 통해 키와 값을 스트림으로 변환하고, 그것을 목록으로 변환했습니다.

Java 예제 전체