可以使用 Java 8 的 Stream 来处理 List 转 Map 的过程,同时考虑到 list 为 null 的情况。

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

public class Main {
    public static void main(String[] args) {
        List<String> list = null;

        Map<Integer, String> map = convertListToMap(list);
        System.out.println(map); // 输出 {}

        list = List.of('apple', 'banana', 'cherry');
        map = convertListToMap(list);
        System.out.println(map); // 输出 {0=apple, 1=banana, 2=cherry}
    }

    public static Map<Integer, String> convertListToMap(List<String> list) {
        if (list == null) {
            return Map.of();
        }

        return list.stream()
                .collect(Collectors.toMap(list::indexOf, s -> s));
    }
}

在这个例子中,我们首先定义了一个 null 的 list。然后将这个 list 传递给 convertListToMap 方法,该方法会检查 list 是否为 null。如果 list 为 null,直接返回一个空的 map。

如果 list 不为 null,我们使用 Java 8 的 Stream 将 list 转换为 map。我们使用 Collectors.toMap 方法来将 list 中的每个元素映射为 map 的 key-value 对。在这个例子中,我们将 list 中每个元素的索引作为 key,元素本身作为 value。最终返回转换后的 map。

输出结果为:

{}
{0=apple, 1=banana, 2=cherry}

原文地址: https://www.cveoy.top/t/topic/o1VD 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录