Character[] arr = set.toArray(new Character[0]);
new Character[0] 이 무슨 말인가요? length가 0인 배열을 만든다는건가요?
toArray는 집합의 모든 요소를 포함하는 배열을 반환한다. 만약 array의 length가 set의 size보다 큰 경우, set의 요소가 array에 순서대로 할당되고 남은 자리에는 null로 설정된다. 하지만 아래 예시처럼 set의 사이즈가 더 큰 경우, set의 요소들은 set의 size에 맞춘 새로운 배열에 할당된다.
HashSet<Character> set = new HashSet();
set.add('a');
set.add('b');
set.add('c');
set.add('d');
System.out.println(set); // [a, b, c, d]
Character[] arr = set.toArray(new Charater[6]);
System.out.println(Arrays.toString(arr)); // [a, b, c, d, null, null]
Character[] arr2 = set.toArray(new Character[0]);
System.out.println(Arrays.toString(arr2)); // [a, b, c, d]