java中list<Object[]>、list<Student>、list<Map<String,String>>排序
2017-10-12 22:34
609 查看
1:list<Object[]>的排序
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]+" ");
}
}
写一个方法
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;
}
});
}
![](https://img-blog.csdn.net/20171013152103248?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvampoYWhhZ2U=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
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文件)
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());
}
写一个排序方法
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;
}
});
}
}
结果图:
![](https://img-blog.csdn.net/20171013152142757?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvampoYWhhZ2U=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
3:list<Map<String,String>>排序问题:
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]+" ");
}
}
写一个方法
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类: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文件)
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());
}
写一个排序方法
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>>排序问题:
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; } }); } }
相关文章推荐
- Java中list<Object[]>、list<Student>、list<Map<String,String>>排序
- java list<Map<String,Object>>排序
- JAVA中对List<map<String,Object>>根据map某个key值进行排序
- Java对List<Map<String,Object>>中的参数中文排序 包含特殊符号
- java中对List<Map<String,Object>>中的中文汉字排序
- java中对List<Map<String,Object>>中的中文汉字排序
- JAVA中对List<Map<String,Object>>中的中文汉字进行排序
- JAVA中对List<Map<String,Object>>中的中文汉字进行排序
- java list<Map<String,Object>>排序
- JAVA对LIST<Map<String,Object>>的排序
- List<Map<String,Object>>如何使用Java代码遍历以获取String,Object的值
- List<Map<String,Object>>使用Java代码遍历以获取String,Object的值
- Java实现List<Map<String, Object>> 转Map<Object, Object>
- List<Map<String,Object>>使用Java代码遍历以获取String,Object的值 .
- 利用java反射机制实现List<Map<String, Object>>转化为List<JavaBean>
- List<Map<String, Object>> 不同key值进行排序备忘
- 对List<Map<String,Object>>进行排序
- List<Map<String,Object>>集合根据map里面的一个字段排序
- List<Map<String, Object>>排序
- List<Map<String, Object>>对其中的map按规则排序