itsource

열거형을 세트/목록으로 변환

mycopycode 2022. 8. 15. 21:35
반응형

열거형을 세트/목록으로 변환

지정된 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보다는ListEnumSet.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

반응형