自定义集合中的排序

1、先自定义Comparator


//     对象的比较器,如1.1.1<1.2.1<1.11.1<1.1.1.1
     public   final   class  LcsjMapComparator  implements  Comparator
    {

        
        
public   int  compare(Object arg0, Object arg1) {
            GdnkVO_Lcsj_Map vo1
= (GdnkVO_Lcsj_Map)arg0;
            GdnkVO_Lcsj_Map vo2
= (GdnkVO_Lcsj_Map)arg1;
            String[] flowCode1
= vo1.getFlowCode().trim().split( " \\. " );
            String[] flowCode2
= vo2.getFlowCode().trim().split( " \\. " );

            
for ( int  i = 0 ;i < 2 ;i ++ )
            {
                
if (Integer.parseInt(flowCode1[i]) < Integer.parseInt(flowCode2[i]))
                    
return   - 1 ;
                
else   if (Integer.parseInt(flowCode1[i]) > Integer.parseInt(flowCode2[i]))
                    
return   1 ;
            }
            
return   0 ;
        }
        
    }    


compare方法中的对象类型必须是集合中的元素的数据类型。

排在后面的返回1,排在前面的返回-1,相同顺序的返回0。


2、使用


Comparator lcsjComparator = new  LcsjMapComparator();
Collections.sort(lcsjList,lcsjComparator);


即可得到排好序的集合。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java集合自定义排序可以使用 Comparator 或 Comparable 接口来实现。 如果使用 Comparator 接口,你可以创建一个实现了 Comparator 接口的类,并重写 compare 方法来定义排序规则。然后通过 Collections.sort 方法使用自定义的 Comparator 对象来对集合进行排序。例如,在引用的示例,我们创建了一个 Mycomparator 类来按照 Person 对象的年龄进行排序,并将其传递给 Collections.sort 方法来排序 ArrayList。 如果使用 Comparable 接口,你可以在对象类实现 Comparable 接口,并重写 compareTo 方法来定义排序规则。然后通过 Collections.sort 方法来对集合进行排序。例如,在引用的示例,我们在 Person 类实现了 Comparable 接口,并重写了 compareTo 方法来按照年龄从大到小进行排序。 另外,在 JDK 8 之后,还可以使用 Stream 流来实现排序功能。你可以使用 sorted 方法和 Comparator.comparing 方法来对集合进行排序。例如,在引用的示例,我们使用 Stream 排序对包含 Person 对象的 List 进行排序。 以上是几种常见的自定义排序方法,你可以根据具体需求选择适合的方法来实现自定义排序。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [Java集合框架实现自定义排序](https://blog.csdn.net/weixin_34066347/article/details/86114722)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"] - *2* *3* [Java List 排序的 3 种方法](https://blog.csdn.net/weixin_64061088/article/details/128668010)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值