Java中list<Object[]>、list<Student>、list<Map<String,String>>排序
时间:2022-05-06
本文章向大家介绍Java中list<Object[]>、list<Student>、list<Map<String,String>>排序,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
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;
}
});
}
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教程
- Java快速入门
- Java 开发环境配置
- Java基本语法
- Java 对象和类
- Java 基本数据类型
- Java 变量类型
- Java 修饰符
- Java 运算符
- Java 循环结构
- Java 分支结构
- Java Number类
- Java Character类
- Java String类
- Java StringBuffer和StringBuilder类
- Java 数组
- Java 日期时间
- Java 正则表达式
- Java 方法
- Java 流(Stream)、文件(File)和IO
- Java 异常处理
- Java 继承
- Java 重写(Override)与重载(Overload)
- Java 多态
- Java 抽象类
- Java 封装
- Java 接口
- Java 包(package)
- Java 数据结构
- Java 集合框架
- Java 泛型
- Java 序列化
- Java 网络编程
- Java 发送邮件
- Java 多线程编程
- Java Applet基础
- Java 文档注释
- android中Glide实现加载图片保存至本地并加载回调监听
- CentOS8部署LNMP环境之编译安装mysql8.0.29的教程详解
- Android获取内置sdcard跟外置sdcard路径
- Android简易电话拨号器实例详解
- Linux 为特定的用户或用户组启用或禁用 SSH的方法
- Android 中IntentFilter的匹配规则实例详解
- Android VideoCache视频缓存的方法详解
- Android标题栏最右边添加按钮的实例
- Ubuntu18.04系统安装、配置Redis及phpredis扩展操作详解
- Android电话拨号器实例详解
- Android获取App内存使用情况的方法
- linux后台运行的几种方式(小结)
- Android 实现ListView的点击变色的实例
- Android播放音乐案例分享
- linux crm部署代码详解