对象数组中按某个字段进行排序

本文通过一个JavaScript实例展示了如何对对象数组按指定属性进行排序,并提供了一个通用的排序函数实现方法。

var objArr = [
   {
       'age': 18,
       'name':'小宝'
   },
   {
       'age': 15,
       'name':'小贝'
   }
];

objArr.sort(getSortFun('asc','age));  // 'desc':'降序'; 'asc':'升序'
console.log(objArr);

//运行结果
[{
    'age':15,
    'name':'小贝'
},{
    'age':18,
    'name':'小宝'
}];

//排序函数
function getSortFun(order, sortBy) {
    var ordAlpah = (order == 'asc') ? '>' : '<';
    var sortFun = new Function('a', 'b', 'return a.' + sortBy + ordAlpah + 'b.' + sortBy + '?1:-1');
    return sortFun;
}

 

 

 

 

可以使用 Java 中的 `Arrays` 类的 `sort` 方法来对对象数组进行排序,同时需要自定义一个实现了 `Comparator` 接口的比较器类,以便按照指定的字段进行比较和排序。 以下是一个示例代码,假设有一个 `Person` 类,包含 `name` 和 `age` 两个字段,现在需要按照 `age` 字段进行排序: ```java import java.util.Arrays; import java.util.Comparator; public class Person { private String name; private int age; public Person(String name, int age) { this.name = name; this.age = age; } public String getName() { return name; } public int getAge() { return age; } public String toString() { return "Person[name=" + name + ", age=" + age + "]"; } public static void main(String[] args) { Person[] people = new Person[3]; people[0] = new Person("Alice", 25); people[1] = new Person("Bob", 30); people[2] = new Person("Charlie", 20); Arrays.sort(people, new Comparator<Person>() { public int compare(Person p1, Person p2) { return Integer.compare(p1.getAge(), p2.getAge()); } }); System.out.println(Arrays.toString(people)); } } ``` 运行该程序,输出结果为: ``` [Person[name=Charlie, age=20], Person[name=Alice, age=25], Person[name=Bob, age=30]] ``` 可以看到,`people` 数组已经按照 `age` 字段从小到大排序了。其中,`Arrays.sort` 方法的第二个参数是一个比较器对象,该对象实现了 `Comparator` 接口的 `compare` 方法,用于指定按照哪个字段进行比较和排序。在本例中,比较器对象使用了匿名类的方式实现。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值