enum 유형으로 구성된 모음을 고려하십시오. 어떤 라이브러리 메소드 min
(또는 max
)이이 콜렉션 (또는 varargs)을 받아들이고 가장 작은/가장 높은 값을 리턴합니까?자바 표준 라이브러리에서 열거 형 집합 중 가장 작은 열거 형을 가져 오는 방법이 있습니까?
EDIT : Comparable
의 compare
구현으로 정의 된 열거 형의 자연 순서를 의미합니다.
enum 유형으로 구성된 모음을 고려하십시오. 어떤 라이브러리 메소드 min
(또는 max
)이이 콜렉션 (또는 varargs)을 받아들이고 가장 작은/가장 높은 값을 리턴합니까?자바 표준 라이브러리에서 열거 형 집합 중 가장 작은 열거 형을 가져 오는 방법이 있습니까?
EDIT : Comparable
의 compare
구현으로 정의 된 열거 형의 자연 순서를 의미합니다.
열거 형으로 당신이 선언 된 순서를 유지하려면, 어떤 수집
class MyComparator implements Comparator<MyEnumType>
{
public int compare(MyEnumType enum1, MyEnumType enum2)
{
return o1.toString().compareTo(o1.toString());
}
}
에서 사용자 정의 비교를 사용 넣어하려는 경우 Comparable<E>
(여기서 E is Enum<E>
)을 구현하고 자연 순서는 열거 형 상수가 선언 된 순서입니다. 선언 당신은 최대 및 최소 정수를 얻기 위해 기본 Comparable를 구현을 사용할 수 있습니다
public enum BigCountries {
USA(312), INDIA(1210), CHINA(1330), BRAZIL (190);
private int population;
private BigCountries(int population) {
this.population = population;
}
}
은 그럼 당신은 사용할 수 있습니다
BigCountries first = Collections.min(Arrays.asList(BigCountries.values())); // USA
BigCountries last = Collections.max(Arrays.asList(BigCountries.values())); //BRAZIL
은 아마, 더 빠른 방법은 직접 액세스를 사용하는 것 values()
방법에 의해 리턴 된 배열 : 열거 주어진 파라미터 순서에 아무런 효과가 없다는 것을
BigCountries[] values = BigCountries.values();
System.out.println(values[0]); // USA;
System.out.println(values[values.length-1]); // BRAZIL;
참고.
사용자 정의 순서 (알파벳 말은), SortedSet의
SortedSet<MyEnumType> set = new TreeSet<MyEnumType>();
set.add(enum1);
Set<MyEnum>
이있는 경우 이미 EnumSet
이어야합니다. 안타깝게도이 클래스는 first
및 last
메서드를 제공하지 않지만 증가 순서로 반복되도록 보장하므로 예를 들어 thatSet.toArray()
의 첫 번째 요소와 마지막 요소를 안정적으로 사용할 수 있습니다.
작은 서수로 최소값을 계산합니까? –
"가장 작은"것을 어떻게 정의합니까? 귀하의 enum은 Comparator를 사용합니까? –
@soc, 가장 작은/가장 높은 것을 말할 때 어떤 종류의 주문을 생각하십니까? 1) 자연 순서 부는 상수가 선언 된 순서입니까? 2) 상수의 알파벳 순서? – bpgergo