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

我有以下 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-W

Item----->TE-7000-8003

Item----->TE-7000-8003-WK

Item----->TE-7000-8003S

Item----->TE-7000-8003-K

我期待如下结果:


Item----->TE-7000-8003

Item----->TE-7000-8003S

Item----->TE-7000-8003-K

Item----->TE-7000-8003-W

Item----->TE-7000-8003-WK


绝地无双
浏览 145回答 2
2回答

qq_笑_17

创建流并使用 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));

互换的青春

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.
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java