如何防止HashSet更改我从列表分配的数组顺序?

问题描述

我想要实现的是我的Set与我的List具有相同的顺序,当我从List到Set赋值时,它正在浪费时间。这是我的工作:

// in here my array still showing same as my submited front end
List<ShipmentAddressGroupingDtDto> submitedShipmentAddressGroupingDtDto = shipmentAddressGroupingDto.getShipmentAddressGroupingDtDto();

//in here my array start changing,it's not the same order again as my object above
        Set<ShipmentAddressGroupingDtDto> setShipmentAddressGroupingDtDto = new HashSet(submitedShipmentAddressGroupingDtDto);
        List<ShipmentAddressGroupingDtDto> shipmentAddressGroupingDtDto = new ArrayList<ShipmentAddressGroupingDtDto>(setShipmentAddressGroupingDtDto);

这是我的submittedShipmentAddressGroupingDtDto的值:

      [
        "id": 0,"address": "Jl. Imam Bonjol","isActive": true,"partnerShipmentId": 1
      ],[
        "id": 0,"partnerShipmentId": 2
      ],"partnerShipmentId": 4
      ],"address": "Jl. Imam Bonjolx","partnerShipmentId": 7
      ]

以及我在 setShipmentAddressGroupingDtDto 中在调试模式下看到的内容

      [
        "id": 0,"partnerShipmentId": 7
      ],"partnerShipmentId": 4
      ]

如何防止“设置订单列表”?还是如果我不能阻止这种情况,如何将其作为提交的值进行排序?

解决方法

您可以使用LinkedHashSet来维护放入其中的元素的顺序。