List实体列表排序Sort

本文介绍了如何使用自定义比较器实现数据列表的排序,并通过实例演示了从大到小排序的方法,适用于需要高效排序场景的技术开发者。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 /// <summary>
        /// 数据列表排序
        /// </summary>
        /// <param name="x"></param>
        /// <param name="y"></param>
        /// <returns></returns>
        private int CompareByProcName(ProcDefaultprocinfoEntity x, ProcDefaultprocinfoEntity y)//从大到小排序器  
        {
            if (x == null)
            {
                if (y == null)
                {
                    return 0;
                }
                return 1;

            }

            if (y == null)
            {
                return -1;
            }

            int retval = y.ProcedureNameCloumn.CompareTo(x.ProcedureNameCloumn);

            return retval;

        }

调用
 lists.Sort(CompareByProcName);

### 如何对Java实体列表进行排序 对于Java中的实体列表,可以利用`Comparator`接口来实现自定义排序逻辑。当涉及到多个属性的比较时,这种做法尤为有用。 创建一个名为 `Person` 的简单实体类作为例子: ```java public class Person { private String name; private int age; public Person(String name, int age) { this.name = name; this.age = age; } // Getters and setters omitted for brevity @Override public boolean equals(Object o) { if (this == o) return true; if (!(o instanceof Person)) return false; Person person = (Person) o; return age == person.age && Objects.equals(name, person.name); } } ``` 为了按照特定字段(比如年龄)对`List<Person>`类型的集合进行排序,可以通过如下方式构建并应用`Comparator`: ```java import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; import java.util.List; // 创建一些测试数据 List<Person> people = new ArrayList<>(); people.add(new Person("Alice", 30)); people.add(new Person("Bob", 25)); // 使用匿名内部类的方式指定排序规则 Collections.sort(people, new Comparator<Person>() { @Override public int compare(Person p1, Person p2) { return Integer.compare(p1.getAge(), p2.getAge()); } }); ``` 从Java 8开始,推荐采用更简洁的lambda表达式语法来进行相同的操作[^1]: ```java // Lambda 表达式的写法更加直观易读 people.sort((p1, p2) -> Integer.compare(p1.getAge(), p2.getAge())); // 或者使用方法引用进一步简化代码 people.sort(Comparator.comparingInt(Person::getAge)); ``` 如果希望基于多个条件排序,则可以在同一个`Comparator`链中组合不同的比较器实例。例如先按名字再按年龄排序: ```java people.sort( Comparator.comparing(Person::getName).thenComparingInt(Person::getAge) ); ``` 上述代码片段展示了如何通过编写简单的比较函数轻松地控制对象之间的相对顺序。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值