gpt4 book ai didi

java - Java 标准库中是否有某种方法可以从一组枚举中获取最小的枚举?

转载 作者:搜寻专家 更新时间:2023-11-01 01:37:47 24 4
gpt4 key购买 nike

考虑一个由枚举类型组成的集合。是否有一些库方法 min(或 max)接受此集合(或可变参数)并返回最小/最高值?

编辑:我指的是枚举的自然顺序,由它们的 Compare 实现 Comparable 定义。

最佳答案

枚举工具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;

请注意,给枚举的参数对排序没有影响。

关于java - Java 标准库中是否有某种方法可以从一组枚举中获取最小的枚举?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7312598/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com