如何按字段对 Hashset<> 进行排序?

Mur*_*ali -1 java sorting java-8

我有一个Set<MultiAdminComponent> rootItems = new HashSet<>();哈希集。在这个我有我所有的屏幕。

在我的HashSet我将拥有我所有的行。我想MultiAdminComponent根据rowId.

这是 MultiAdminComponent

 public class MultiAdminComponent {

        private String componentName;
        private String componentIdentification;
        private String componentType;
        private String componentState;
        private String componentUrl;
        private String componentId;
        private String rowId;
        private List<MultiAdminComponent> items;
        private int componentStateId;
        private int ctastatus;
        private String actionId;
        private String actionToPerform;
        private int orderNumber;
        private int ctarevision;
Run Code Online (Sandbox Code Playgroud)

如何根据MultiAdminComponentbean 中的RowId 进行排序

Grz*_*rek 7

由于您使用的是 Java 8,因此您可以利用Stream APIComparator.comparing()

List<MultiAdminComponent> sortedList = rootItems.stream()
   .sorted(Comparator.comparing(MultiAdminComponent::getRowId))
   .collect(Collectors.toList()); // collect to whatever you want
Run Code Online (Sandbox Code Playgroud)

请记住,HashSet它不维护顺序,因此您应该将排序结果保留在其他一些数据结构中。

请记住,这不会对您进行排序,Set这将返回List自然排序的MultiAdminComponents 并且您需要捕获此操作的结果。