如何以自定义顺序在JSP文件中显示EnumSet?

时间:2017-03-31 12:48:16

标签: java jsp enumset

我有一个java.util.EnumSet,其中包含许多显示为下拉列表(JSP)的元素。现在,默认情况下,它们按ID排序:

1 Toyota
2 Honda
3 Audi
4 BMW 

我想要实现的是按字母顺序排列的列表:

3 Audi
4 BMW
2 Honda
1 Toyota

我可以更改下拉列表中显示枚举的顺序而不更改其ID吗?

1 个答案:

答案 0 :(得分:2)

您可以从Collection创建一个有序的EnumSet,然后在JSP中使用它。然而,你不会获得EnumSet的好处,在这种情况下,首先不需要使用它。

检查以下示例,以创建所需的有序List

import java.util.Arrays;
import java.util.EnumSet;
import java.util.List;

public class TestEnumSet {
    public static void main(String[] args) {
        System.out.println("Started\n");

        EnumSet<Cars> set = EnumSet.of(Cars.Toyata, Cars.Audi, Cars.Honda, Cars.BMW);

        List<Cars> list = Arrays.asList(set.toArray(new Cars[]{}));
        list.sort((a, b) -> a.toString().compareTo(b.toString()));

        list.stream().forEach(a -> System.out.println(a.id + " : " + a.toString()));

        System.out.println("\nFnished");
    }

    public static enum Cars {
        Toyata(1), Audi(2), Honda(3), BMW(4);

        int id;
        Cars(int id ) {
            this.id = id;
        }
    }
}

<强>输出

Started

2 : Audi
4 : BMW
3 : Honda
1 : Toyata

Fnished