java - 如何防止 HashSet 更改我从 List 分配的数组顺序?
问题描述
我试图实现的是我的 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);
这是我对 submitedShipmentAddressGroupingDtDto 的值:
[
"id": 0,
"address": "Jl. Imam Bonjol",
"isActive": true,
"partnerShipmentId": 1
],
[
"id": 0,
"address": "Jl. Imam Bonjol",
"isActive": true,
"partnerShipmentId": 2
],
[
"id": 0,
"address": "Jl. Imam Bonjol",
"isActive": true,
"partnerShipmentId": 4
],
[
"id": 0,
"address": "Jl. Imam Bonjolx",
"isActive": true,
"partnerShipmentId": 7
]
我在调试模式下看到的,在我的setShipmentAddressGroupingDtDto中是这样的:
[
"id": 0,
"address": "Jl. Imam Bonjol",
"isActive": true,
"partnerShipmentId": 2
],
[
"id": 0,
"address": "Jl. Imam Bonjolx",
"isActive": true,
"partnerShipmentId": 7
],
[
"id": 0,
"address": "Jl. Imam Bonjol",
"isActive": true,
"partnerShipmentId": 1
],
[
"id": 0,
"address": "Jl. Imam Bonjol",
"isActive": true,
"partnerShipmentId": 4
]
如何防止设置我的列表排序?或者如果我不能阻止这种情况,我该如何将它作为我提交的值进行排序?
解决方案
您可以使用LinkedHashSet来维护您放入其中的元素的顺序。
推荐阅读
- c# - 如何在不循环的情况下将数据从 DataReader 读取到自定义对象
- coldfusion - ColdFusion - 字符串到变量
- python - 即使在异常之后 cgitb 也会继续
- arrays - 在 ruby 中,对于 2d 数组,除了一个值之外,如何删除与另一行匹配的行?
- vb.net - 比较 x2 文本框内容的第一部分
- javascript - 如何在 HTML 页面中嵌入 ContextualWeb 新闻 API?
- javascript - 滚动过去的元素时更改 div/span 颜色?
- jquery - 如何检查javascript值是否设置正确
- automation - 使用 UiPath 自动搜索
- reactjs - 如何在没有突变的情况下更新状态数组中的现有值?