Java对象列表按特定对象排序,而不是排序
发布时间:2020-12-15 04:50:02 所属栏目:Java 来源:网络整理
导读:我有以下 JSONArray试图对它进行排序.因此,为了将我的JSONArray转换为ArrayList,然后对它们进行排序并转换回JSONArray. 请找到最初的JSONArray(不在排序顺序中). [ { "code":"TE-7000-8003-W","id":"13342",},{ "code":"TE-7000-8003","id":"13163",{ "code"
我有以下
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 解决方法
创建流并使用已排序时,不要更改实际列表.所以你做云
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)); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
推荐文章
站长推荐
- java – Hibernate:删除多对多关联
- 简约之美Jodd-http--深入源码理解http协议
- 解析Java的Spring框架的BeanPostProcessor发布处
- LCN 错误: attempts to join the non-existent t
- Java有界泛型:类型推断错误? (方法调用,JLS 15
- java – 掌握Google Guice
- 在Java中列出并列出<?>
- java – JPanel不使用setSize和setPrefferedSize
- 关于Java的mongodb的ORM工具/框架
- javafx – cellValueFactory()和cellFactory()如
热点阅读