問題

如何將字元列表新增到集合中? 下面的程式碼似乎不起作用.

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

我看到的錯誤是

建構函式HashSet(Character [])未定義

我嘗試了tract []和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-9 有可用於建立不可變物件的Set.of方法

 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