如何以自定义顺序显示 JSP 文件中的 EnumSet?
How to display EnumSet in JSP file in custom order?
我有一个 java.util.EnumSet
,其中包含许多显示为下拉列表的元素 (JSP
)。现在,默认情况下它们按 ID
:
排序
1 Toyota
2 Honda
3 Audi
4 BMW
我要实现的是按字母顺序排列的列表:
3 Audi
4 BMW
2 Honda
1 Toyota
我可以在不更改枚举 ID 的情况下更改枚举在下拉列表中的显示顺序吗?
您可以从 EnumSet
创建一个有序的 Collection
,然后在 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
我有一个 java.util.EnumSet
,其中包含许多显示为下拉列表的元素 (JSP
)。现在,默认情况下它们按 ID
:
1 Toyota
2 Honda
3 Audi
4 BMW
我要实现的是按字母顺序排列的列表:
3 Audi
4 BMW
2 Honda
1 Toyota
我可以在不更改枚举 ID 的情况下更改枚举在下拉列表中的显示顺序吗?
您可以从 EnumSet
创建一个有序的 Collection
,然后在 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