列表里面的字典排序:

//a = [{'id':1,'name':'⼩明'},{'id':3,'name':'⼩红'},{'id':2,'name':'⽼王'}]

按id来排序:

python代码实现(用sorted自定义排序):

也可以用选择排序和冒泡排序

a = [{'id':1,'name':'⼩明'},{'id':3,'name':'⼩红'},{'id':2,'name':'⽼王'}]

# b=sorted(range(len(a)),key=lambda k:a[k]['id'])
# i=0

# b={}
# for i in range(len(a)):
#     j=i+1;
#     while(j<len(a)):
#         if(a[i]['id']>a[j]['id']):
#             b=a[i];
#             a[i]=a[j];
#             a[j]=b
#         j+=1;

#
# print(a)
b=sorted(a,key=lambda k:k['id'])

print(b)

java实现(重写sort方法或选择排序):

//a = [{'id':1,'name':'⼩明'},{'id':3,'name':'⼩红'},{'id':2,'name':'⽼王'}]

import java.util.Arrays;
import java.util.Comparator;
import java.util.HashMap;
import java.util.Map;

public class test03071 {
    public static void main(String[] args) {
    String str[]=new String[3];

    Student student=new Student(1,"小明");
    Student student1=new Student(3,"小红");
    Student student2=new Student(2,"老王");
    str[0]=student.todataString();
    str[1]=student1.todataString();
    str[2]=student2.todataString();

//        Arrays.sort(str, new Comparator<String>() {
//            @Override
//            public int compare(String o1, String o2) {
//                return Integer.parseInt(o1.split(":")[1].split(",")[0])-Integer.parseInt(o2.split(":")[1].split(",")[0]);
//            }
//        });
//
//        System.out.println(Arrays.toString(str));
       for(int i=0;i<3;i++){
           for(int j=i+1;j<3;j++){
               if(Integer.parseInt(str[i].split(":")[1].split(",")[0])-Integer.parseInt(str[j].split(":")[1].split(",")[0])>0){
                   String b=str[i];
                   str[i]=str[j];
                   str[j]=b;
               }
           }
       }

        System.out.println(Arrays.toString(str));

    }

    static class Student{
        private int id;
        private String name;

        public Student(int id,String name){
            this.id=id;
            this.name=name;
        }

        public String todataString(){
            return "id"+":"+this.id+","+"name:"+this.name;
        }

    }


}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值