前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Java中list<Object[]>、list<Student>、list<Map<String,String>>排序

Java中list<Object[]>、list<Student>、list<Map<String,String>>排序

作者头像
cMusketeer
发布2018-03-28 10:50:32
3.5K0
发布2018-03-28 10:50:32
举报
文章被收录于专栏:Android机器圈Android机器圈

1:list<Object[]>的排序

代码语言:javascript
复制
public static void main(String[] args) {

// TODO Auto-generated method stub

Object[] o1=new Object[4];

o1[0]="5";

o1[1]="o1";

o1[2]="o11";

o1[3]="o111";

Object[] o2=new Object[4];

o2[0]="3";

o2[1]="o2";

o2[2]="o22";

o2[3]="o222";

List<Object[]> list=new ArrayList<>();

list.add(o1);

list.add(o2);

 

//很明显我们先添加的对象o1,所以先打印o1,

for(inti=0;i<list.size();i++){

for(intj=0;j<4;j++){

System.out.print(list.get(i)[j]+"  ");

}

}

 

System.out.println("\n排序后-------");

sortList(list);

 

//排序后:

for(inti=0;i<list.size();i++){

for(intj=0;j<4;j++){

System.out.print(list.get(i)[j]+"  ");

}

}

写一个方法

代码语言:javascript
复制
public staticvoid sortList(List<Object[]>ls){

Collections.sort(ls,new Comparator<Object[]>() {

@Override

public int compare(Object[] o1, Object[] o2) {

if(Integer.valueOf(o1[0].toString())>Integer.valueOf(o2[0].toString()))

{

return 1;

}

 

return -1;

}

});

}

2://list<Student>排序,主要是正对汉族的排序,按照拼音排序,

首先写一个Student类:

代码语言:javascript
复制
package com.model;

 

public class Student {

public Stringname;

publicintage;

public Student(Stringname,intage){

this.name=name;

this.age=age;

}

public void setName(String name){

this.name=name;

}

public String getName(){

returnname;

}

 

public void setAge(int age){

this.age=age;

}

public int getAge(){

returnage;

}

}

然后在main方法中调用,(这里写的是一个java文件)

代码语言:javascript
复制
Student stu1=new Student("张三",23);

Student stu2=new Student("李四",25);

List<Student> listStudent=new ArrayList<>();

listStudent.add(stu1);

listStudent.add(stu2);

 

System.out.println();

for(int i=0;i<listStudent.size();i++){

System.out.print(listStudent.get(i).getName()+"---"+listStudent.get(i).getAge());

 

}

System.out.println("\n排序后");

sortListStudent(listStudent);

for(int i=0;i<listStudent.size();i++){

System.out.print(listStudent.get(i).getName()+"---"+listStudent.get(i).getAge());

 

}

写一个排序方法

代码语言:javascript
复制
public staticvoid sortListStudent(List<Student>ls){

Collections.sort(ls,new Comparator<Student>() {

 

@Override

public int compare(Student o1, Student o2) {

String s1=o1.getName();

String s2=o2.getName();

if(s1.compareTo(s2)>0){

return -1;

}

return 1;

}

 

});

 

}

 
 
}

结果图:

3:list<Map<String,String>>排序问题:

代码语言:javascript
复制
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

public class MapListSort {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        List<Map<String,String>> listMap=new ArrayList<>();
        Map<String, String> map1=new HashMap<String, String>();
        map1.put("map001", "001");
        map1.put("map003", "map003");
        map1.put("map002", "map002");
        Map<String, String> map2=new HashMap<String, String>();
        map2.put("map001", "101");
        map2.put("map003", "map303");
        map2.put("map002", "map202");
        //先添加的map2,但是map2中map001的值大于map1中的map001的值。
        listMap.add(map2);
        listMap.add(map1);
        
        for(int i=0;i<listMap.size();i++){
                System.out.print(listMap.get(i).get("map001")+","+listMap.get(i).get("map002")+","+listMap.get(i).get("map003")+"\n");
                
        }
        
        mapSorts(listMap);
        
        System.out.println("\n排序后:");
        for(int i=0;i<listMap.size();i++){
            System.out.print(listMap.get(i).get("map001")+","+listMap.get(i).get("map002")+","+listMap.get(i).get("map003")+"\n");
    }


    }
    
    public static void mapSorts(List<Map<String,String>> map){
        Collections.sort(map,new Comparator<Map<String,String>>() {

            @Override
            public int compare(Map<String, String> o1, Map<String, String> o2) {
                // TODO Auto-generated method stub
                if(o1.get("map001").compareTo(o2.get("map001"))>0){
                    return 1;
                    
                }
                return -1;
            }
        });

    }

}
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2017-12-10 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 2://list<Student>排序,主要是正对汉族的排序,按照拼音排序,
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档