为了账号安全,请及时绑定邮箱和手机立即绑定

Java对象列表按未排序的特定对象排序

Java对象列表按未排序的特定对象排序

绝地无双 2021-09-29 11:04:20
我有以下 JSONArray 正在尝试对其进行排序。因此,为此我将我的 JSONArray 转换为 ArrayList,然后对它们进行排序并转换回 JSONArray。请找到初始的 JSONArray(不按排序顺序)。[     {        "code":"TE-7000-8003-W",      "id":"13342",   },   {        "code":"TE-7000-8003",      "id":"13163",   },   {        "code":"TE-7000-8003-WK",     "id":"11573",   },   {        "code":"TE-7000-8003S",      "id":"11565",   },   {        "code":"TE-7000-8003-K",      "id":"11557",   }]请找到我下面的代码,它将我的 JSONArray 转换为 ArrayList 并对它们进行排序。Item item=null;List<Item> newItemList = new ArrayList<Item>();for (int i=0;i<resultJSONArray.length();i++) {    JSONObject jobj = resultJSONArray.getJSONObject(i);    item = new Item();    item.setId(jobj.optString("id"));    item.setCode(jobj.optString("code"));    newItemList.add(item);} newItemList  .stream()  .sorted((object1, object2) -> object1.getCode().compareTo(object2.getCode()));Iterator<Item> itr = newItemList.iterator();while(itr.hasNext()) {    Item item1=itr.next();    System.out.println("Item----->"+item1.getCode());}以下是未排序的输出Item----->TE-7000-8003-WItem----->TE-7000-8003Item----->TE-7000-8003-WKItem----->TE-7000-8003SItem----->TE-7000-8003-K我期待如下结果:Item----->TE-7000-8003Item----->TE-7000-8003SItem----->TE-7000-8003-KItem----->TE-7000-8003-WItem----->TE-7000-8003-WK
查看完整描述

2 回答

?
qq_笑_17

TA贡献1818条经验 获得超7个赞

创建流并使用 sorted 时,不会更改实际列表。因此,您可以执行以下操作:


List<Item> sortedItemList =newItemList

.stream()

.sorted((object1, object2) -> object1.getCode().compareTo(object2.getCode()))

.collect(Collectors.toList());

或者更好地使用 sort 方法对列表进行排序


newItemList

.sort((object1, object2) -> object1.getCode().compareTo(object2.getCode()));

你可以Comparator.comparing(Item::getCode)用来替换比较器


newItemList

.sort(Comparator.comparing(Item::getCode));


查看完整回答
反对 回复 2021-09-29
?
互换的青春

TA贡献1797条经验 获得超6个赞

Comparator像这样使用简单的应用程序在您的列表中;


newItemList

.sort((firstObj, secondObj) -> firstObj.getCode().compareTo(secondObj.getCode()));

或者更简单;


newItemList.sort(Comparator.comparing(Item::getCode)); //dont forget to write getter method of Code variable.


查看完整回答
反对 回复 2021-09-29
  • 2 回答
  • 0 关注
  • 144 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信