温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

EnumSet如何与其他集合互转

发布时间:2025-12-15 01:57:13 来源:亿速云 阅读:96 作者:小樊 栏目:编程语言

EnumSet 是 Java 中专门为枚举类型设计的集合类,它提供了高效的枚举类型集合操作。虽然 EnumSet 本身没有直接提供与其他集合类(如 ListSetMap 等)的转换方法,但我们可以通过一些简单的步骤来实现这些转换。

EnumSet 转换为 List

要将 EnumSet 转换为 List,我们可以使用 ArrayList 的构造函数,该构造函数接受一个集合作为参数。

import java.util.EnumSet;
import java.util.ArrayList;
import java.util.List;

enum Color {
    RED, GREEN, BLUE
}

public class EnumSetToListExample {
    public static void main(String[] args) {
        EnumSet<Color> enumSet = EnumSet.allOf(Color.class);
        List<Color> colorList = new ArrayList<>(enumSet);
        System.out.println(colorList);
    }
}

EnumSet 转换为 Set

由于 EnumSet 本身就是 Set 的一种实现,所以我们可以直接将其转换为其他类型的 Set,例如 HashSet

import java.util.EnumSet;
import java.util.HashSet;
import java.util.Set;

enum Color {
    RED, GREEN, BLUE
}

public class EnumSetToSetExample {
    public static void main(String[] args) {
        EnumSet<Color> enumSet = EnumSet.allOf(Color.class);
        Set<Color> colorSet = new HashSet<>(enumSet);
        System.out.println(colorSet);
    }
}

EnumSet 转换为 Map

要将 EnumSet 转换为 Map,我们可以使用 Java 8 的 Stream API。以下是一个将 EnumSet 转换为 Map 的示例,其中键是枚举常量,值可以是任意类型(这里使用枚举常量的名称作为值)。

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

enum Color {
    RED, GREEN, BLUE
}

public class EnumSetToMapExample {
    public static void main(String[] args) {
        EnumSet<Color> enumSet = EnumSet.allOf(Color.class);
        Map<Color, String> colorMap = enumSet.stream()
                .collect(Collectors.toMap(color -> color, color -> color.name()));
        System.out.println(colorMap);
    }
}

其他集合转换为 EnumSet

要将其他集合(如 ListSet)转换为 EnumSet,我们可以使用 EnumSet 的构造函数,该构造函数接受一个集合作为参数。

import java.util.EnumSet;
import java.util.ArrayList;
import java.util.List;

enum Color {
    RED, GREEN, BLUE
}

public class OtherCollectionToEnumSetExample {
    public static void main(String[] args) {
        List<Color> colorList = new ArrayList<>();
        colorList.add(Color.RED);
        colorList.add(Color.GREEN);
        colorList.add(Color.BLUE);

        EnumSet<Color> enumSet = EnumSet.copyOf(colorList);
        System.out.println(enumSet);
    }
}

通过这些示例,我们可以看到如何在不同类型的集合之间进行转换。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI