ArrayList自定义排序的两种实现方式

ArrayList 这个集合的排序方式有两种:1.实现ICompareable接口  实现自定义排序2.自己定义一个类(比较器)实现arraylist的自定义排序下面具体说明:第一种:class Person : IComparable//自定义类实现IComparable接口的CompareTo的方法,实现自定义排序,代码很简单,就不在仔细说了 {
摘要由CSDN通过智能技术生成

ArrayList 这个集合的排序方式有两种:

1.实现ICompareable接口  实现自定义排序

2.自己定义一个类(比较器)实现arraylist的自定义排序

下面具体说明:

第一种:

class Person : IComparable//自定义类实现IComparable接口的CompareTo的方法,实现自定义排序,代码很简单,就不在仔细说了
    {
        private int age;

        public int Age
        {
            get { return age; }
            set { age = value; }
        }
        private string name;

        public string Name
        {
            get { return name; }
            set { name = value; }
        }

        public int CompareTo(object obj)
        {
            //值 含义 小于零 此实例按排序顺序在 obj 前面。 零 此实例与 obj 在排序顺序中出现的位置相同。
            int result = 1;
            if (obj == null)//判断obj是否为null
            {
                result =
  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Java中的Collections类提供了sort()方法来对List进行排序。该方法有两种方式,一种是默认排序方式,另一种是自定义排序方式。您提到的是自定义排序的方法。 在自定义排序中,我们可以使用Comparator接口来实现自定义的比较逻辑。Comparator接口是一个函数式接口,其中定义了一个compare()方法用于比较两个对象的顺序。我们可以创建一个实现了Comparator接口的类,并重写compare()方法来定义我们自己的排序规则。 下面是一个示例代码,演示了如何使用自定义排序方式进行排序: ```java import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; import java.util.List; public class CustomSortingExample { public static void main(String[] args) { List<String> list = new ArrayList<>(); list.add("apple"); list.add("banana"); list.add("cherry"); list.add("durian"); // 使用自定义排序规则 Collections.sort(list, new CustomComparator()); // 打印排序后的结果 for (String fruit : list) { System.out.println(fruit); } } // 自定义比较器 static class CustomComparator implements Comparator<String> { @Override public int compare(String o1, String o2) { // 根据字符串的长度进行排序,长度短的排在前面 return o1.length() - o2.length(); } } } ``` 在上述示例中,我们创建了一个List对象,并添加了一些水果名称。然后,我们使用Collections.sort()方法来对List进行排序,并传入了一个自定义的Comparator对象来实现自定义排序规则。在CustomComparator类中,我们根据字符串的长度来比较两个字符串的顺序。 请注意,自定义排序规则可以根据具体的需求来定义,不限于上述示例中的字符串长度比较。您可以根据自己的需求,实现不同的Comparator接口来进行自定义排序
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值