열거형을 세트/목록으로 변환
지정된 Enumeration을 덤프하는 원라이너 브리지 메서드가 있습니까?java.util.List
또는java.util.Set
?
내장되어 있는 것 같은 것Arrays.asList()
또는Collection.toArray()
어딘가에 존재해야 하는데 IntelliJ 디버거의 평가자 창에서 찾을 수 없습니다(Google/SO 결과도 마찬가지).
를 사용하여 다음 값을 변환할 수 있습니다.Enumeration
에 대해서List
한 줄:
List<T> list = Collections.list(enumeration);
같은 방법으로 얻을 수 있는 것은 없습니다.Set
단, 1행은 할 수 있습니다.
Set<T> set = new HashSet<T>(Collections.list(enumeration));
이것은 어떻습니까? Collections.list(Enumeration e)는 다음 명령어를 반환합니다.ArrayList<T>
필요하시면Set
보다는List
EnumSet.allOf()를 사용할 수 있습니다.
Set<EnumerationClass> set = EnumSet.allOf(EnumerationClass.class);
업데이트: Jake Robb이 옳습니다.제 대답은 java.lang에 관한 것입니다.java.util 대신 Enum.열거.관련없는 답변 죄송합니다.
guava(문서 참조)를 사용하는 경우,Iterators.forEnumeration
. 특정의 경우Enumeration x
다음 작업을 수행할 수 있습니다.
불변의 집합을 얻으려면:
ImmutableSet.copyOf(Iterators.forEnumeration(x));
불변의 리스트를 취득하려면:
ImmutableList.copyOf(Iterators.forEnumeration(x));
hashSet을 가져오려면:
Sets.newHashSet(Iterators.forEnumeration(x));
열거형을 목록으로 변환하는 간단한 예가 있습니다.이것을 위해 나는 사용했다.Collections.list(enum)
방법.
public class EnumerationToList {
public static void main(String[] args) {
Vector<String> vt = new Vector<String>();
vt.add("java");
vt.add("php");
vt.add("array");
vt.add("string");
vt.add("c");
Enumeration<String> enm = vt.elements();
List<String> ll = Collections.list(enm);
System.out.println("List elements: " + ll);
}
}
Apache Commons-Collections에도 있습니다.EnumerationUtils.toList(enumeration)
저도 같은 것이 필요했고 이 솔루션은 잘 작동합니다.누군가에게도 도움이 되었으면 합니다.
Enumeration[] array = Enumeration.values();
List<Enumeration> list = Arrays.asList(array);
그러면 열거형의 .name()을 얻을 수 있습니다.
언급URL : https://stackoverflow.com/questions/5610822/convert-enumeration-to-a-set-list
'itsource' 카테고리의 다른 글
스프링 부트:Embedded Servlet Container Factory 빈이 없어 Embedded Web Application Context를 시작할 수 없습니다. (0) | 2022.08.15 |
---|---|
비동기 상태 변경 후 Vuex 기능 실행 (0) | 2022.08.15 |
Java의 컨스트럭터는 프라이빗하게 할 수 있습니까? (0) | 2022.08.15 |
C#과 Java의 주요 차이점은 무엇입니까? (0) | 2022.08.15 |
함수는 C에서 구조 변수를 실제로 어떻게 반환합니까? (0) | 2022.08.14 |