.asSet(...)이 API에 있나요?
세트를 만드는 매우 간단한 방법을 찾고 있습니다.
Arrays.asList("a", "b" ...)
작성하다List<String>
비슷한 게 있나요?Set
?
Java 8을 사용하면 서드파티 프레임워크 없이도 이를 수행할 수 있습니다.
Set<String> set = Stream.of("a","b","c").collect(Collectors.toSet());
Collectors를 참조.
맛있게 드세요!
Guava를 사용하면 다음과 같이 간단합니다.
Set<String> mySet = ImmutableSet.<String> of("a", "b");
또는 가변 세트의 경우:
Set<String> mySet = Sets.newHashSet("a", "b")
자세한 데이터 유형은 Guava 사용자 가이드를 참조하십시오.
사용할 수 있습니다.
new HashSet<String>(Arrays.asList("a","b"));
0 또는 1개의 멤버가 있는 특별한 세트의 경우 다음을 사용할 수 있습니다.
java.util.Collections.EMPTY_SET
또, 다음과 같이 합니다.
java.util.Collections.singleton("A")
Java 9 에서는, 공장에서의 방법으로 유사한 기능이 추가되고 있습니다.
Set<String> oneLinerSet = Set.of("a", "b", ...);
(에 상당하는 것이 있습니다.List
)도 참조해 주세요.)
다른 사람이 말한 것처럼 다음을 사용합니다.
new HashSet<String>(Arrays.asList("a","b"));
이것이 자바에 존재하지 않는 이유는Arrays.asList
는 고정 크기의 목록을 반환합니다.즉, 다음과 같습니다.
public static void main(String a[])
{
List<String> myList = Arrays.asList("a", "b");
myList.add("c");
}
반품:
Exception in thread "main" java.lang.UnsupportedOperationException
at java.util.AbstractList.add(Unknown Source)
at java.util.AbstractList.add(Unknown Source)
「고정 사이즈」의 JDK 실장은 없습니다.Set
내부Arrays
왜 이걸 원하죠?aSet
중복이 없음을 보증합니다만, 손으로 입력하는 경우는, 그 기능은 필요 없습니다.그리고.List
더 많은 메서드가 있습니다.양쪽 인터페이스가 확장됩니다.Collection
그리고.Iterable
.
JDK에 없는 guava를 사용하세요.이 기능을 사용하려면 guava를 사용하십시오.이에 대한 정보는 이들의 답변(특히 Michael Schmeierer의 답변)을 참조하십시오.
아니, 근데 이렇게 해도 돼
new HashSet<String>(Arrays.asList("a", "b", ...));
여기 당신이 사용할 수 있는 작은 방법이 있습니다.
/**
* Utility method analogous to {@link java.util.Arrays#asList(Object[])}
*
* @param ts
* @param <T>
* @return the set of all the parameters given.
*/
@SafeVarargs
@SuppressWarnings("varargs")
public static <T> Set<T> asSet(T... ts) {
return new HashSet<>(Arrays.asList(ts));
}
Set<String> set = Sets.newHashSet("a","b","c");
Java 8 및 enum을 사용하는 다른 방법은 다음과 같습니다.
Set<String> set = EnumSet.of(StandardOpenOption.CREATE, StandardOpenOption.READ);
EnumSet을 참조하십시오.
이 접근방식과 퍼포먼스 분석을 권장합니다.
Set<String> set = Stream.of(StandardOpenOption.CREATE, StandardOpenOption.READ).collect(Collectors.toSet());
5개 이상의 요소가 있는 경우 메서드의 javadoc은 Set의 javadoc에서 볼 수 있듯이 성능 문제가 있을 수 있음을 나타냅니다.Of(E, E...)
언급URL : https://stackoverflow.com/questions/16358796/does-asset-exist-in-any-api
'source' 카테고리의 다른 글
C의 단일 문자 출력 (0) | 2022.09.30 |
---|---|
열 값을 업데이트하여 문자열의 일부를 바꿉니다. (0) | 2022.09.30 |
UUID에 대한 트리거를 삽입하기 전에 MariaDB (0) | 2022.09.30 |
Lookup에서 재귀 CTE를 사용하는 방법 (0) | 2022.09.29 |
이것은 안티 패턴입니까, 아니면 Vue가 파괴되었는지 여부를 검출하는 더 간단한 방법이 있습니까? (0) | 2022.09.29 |