주어진 Enumeration을 java.util.List 또는 java.util.Set에 덤프하는 단일 라이너 브릿지 방법이 있습니까?
내장 Arrays.asList()
또는 Collection.toArray()
어딘가에 존재하는 것이 있지만 IntelliJ 디버거의 평가 기 창 (및 Google / SO 결과)에서도 찾을 수 없습니다.
답변
를 한 줄로 Collections.list()
변환하는 Enumeration
데 사용할 수 있습니다 List
.
List<T> list = Collections.list(enumeration);
를 얻는 비슷한 방법 Set
은 없지만 여전히 한 줄로 할 수 있습니다.
Set<T> set = new HashSet<T>(Collections.list(enumeration));
답변
어떻습니까 : Collections.list (Enumeration e) 는ArrayList<T>
답변
구아바를 사용하는 경우 ( doc 참조 ) 있습니다 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);
}
}
참조 : 열거를 목록으로 변환하는 방법
답변
Set
대신에 필요한 경우 EnumSet.allOf ()를List
사용할 수 있습니다 .
Set<EnumerationClass> set = EnumSet.allOf(EnumerationClass.class);
업데이트 : JakeRobb이 맞습니다. 내 대답은 java.util.Enumeration 대신 java.lang.Enum에 관한 것입니다. 관련없는 답변에 대해 죄송합니다.
답변
나는 똑같은 것이 필요 했고이 솔루션은 잘 작동합니다. 누군가도 도울 수 있기를 바랍니다.
Enumeration[] array = Enumeration.values();
List<Enumeration> list = Arrays.asList(array);
그런 다음 열거의 .name ()을 얻을 수 있습니다.
답변
