java - 如何将字符数组转换为集合

标签 java

如何将字符列表添加到集合中? 下面的代码似乎不起作用。

HashSet<Character> vowels = new HashSet<Character>(
        new Character[] {'a', 'e', 'i', 'o', 'u', 'y'}
    );

我看到的错误是

The constructor HashSet(Character[]) is undefined

我都试过了,Character[] 和 char[],但都不行。

最佳答案

首先将Character数组转换为List,然后使用HashSet<>()转换为 Set

的构造函数
List<Character> chars = Arrays.asList(new Character[] {'a', 'e', 'i', 'o', 'u', 'y'});
Set<Character> charSet = new HashSet<>(chars);
System.out.println(charSet);

或者你可以直接使用Arrays.asList

Set<Character> charSet = new HashSet<>(Arrays.asList('a','e','i','o','u','y'));

表格jdk-9Set.of 方法可用于创建不可变对象(immutable对象)

Set<Character> chSet = Set.of('a','e','i','o','u','y');

您还可以使用 Collections

创建不可修改的 Set
Set<Character> set2 = Collections.unmodifiableSet(new HashSet<Character>(Arrays.asList(new Character[] {'a','e','i','o','u'})));

通过使用Arrays.stream

Character[] ch = new Character[] {'a', 'e', 'i', 'o', 'u', 'y'};
Set<Character> set = Arrays.stream(ch).collect(Collectors.toSet());

关于java - 如何将字符数组转换为集合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58211465/

相关文章:

java - Hibernate HT_ 临时表 ON JOINED 继承,从 Hibernate 3.4.0.GA 迁移到 5.1

java - 在字节数组后附加字节

java - Spring security 4.0.1 不支持请求方法 'POST'

java - 写入已存在的文件 - 但我有一个问题

java - 按下 GUI 按钮,从数组中随机选择一个单词并将其放置在 JLabel 上

java - XMLOutputStream、修复命名空间和没有命名空间的属性

java - 从主题添加按钮到预先存在的工具栏

java - 与 Maven 中的 Java 测试共享测试文件夹中的 Scala 类

java - 如何查找类的对象

java - Listview 的 Intent 值(json 数组)