问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

求一个java List排序

发布网友 发布时间:2022-04-22 22:41

我来回答

2个回答

热心网友 时间:2023-08-28 21:22

刚好学了一下:
package com.share.tools;

import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.Date;
import java.util.List;

public class MyComparator {

public static void main(String[] args) {
// 排序方式:优先度(priority)=2,date, id,name
List<MyBean> list = new ArrayList<MyBean>();
MyBean bean = new MyBean();
bean.setAge(14);
bean.setId(1003L);
bean.setName("abd");
list.add(bean);

bean = new MyBean();
bean.setAge(13);
bean.setId(1003L);
bean.setName("abc");
bean.setPriority(1);
list.add(bean);

bean = new MyBean();
bean.setAge(13);
bean.setId(1000L);
bean.setName("abc");
list.add(bean);

bean = new MyBean();
bean.setAge(13);
bean.setId(1002L);
bean.setName("ab");
list.add(bean);

bean = new MyBean();
bean.setAge(15);
bean.setId(1003L);
bean.setName("aac");
list.add(bean);

bean = new MyBean();
bean.setAge(12);
bean.setId(1001L);
bean.setName("abcd");
bean.setPriority(2);
list.add(bean);

bean = new MyBean();
bean.setAge(13);
bean.setId(1004L);
bean.setName("abc");
bean.setPriority(2);
list.add(bean);

bean = new MyBean();
list.add(bean);

bean = new MyBean();
bean.setAge(13);
list.add(bean);

bean = new MyBean();
bean.setId(1004L);
list.add(bean);

bean = new MyBean();
bean.setName("abc");
list.add(bean);

bean = new MyBean();
bean.setId(1000L);
bean.setDate(new Date("2010/10/11"));
list.add(bean);

bean = new MyBean();
bean.setId(1007L);
bean.setDate(new Date("2010/10/10"));
list.add(bean);

System.out.println("SORT前:");
for (MyBean mb : list) {
System.out.println("********************************************");
System.out.println("**priority=" + mb.getPriority() + ", date=" + mb.getDate() + ", id=" + mb.getId() + ", name=" + mb.getName() + ", age=" + mb.getAge());
System.out.println("********************************************");
}

Collections.sort(list, new ToSort());

System.out.println("SORT后:");
for (MyBean mb : list) {
System.out.println("********************************************");
System.out.println("**priority=" + mb.getPriority() + ", date=" + mb.getDate() + ", id=" + mb.getId() + ", name=" + mb.getName() + ", age=" + mb.getAge());
System.out.println("********************************************");
}
}
}

class ToSort implements Comparator<MyBean> {

@Override
public int compare(MyBean o1, MyBean o2) {

Integer priority1 = o1.getPriority();
Integer priority2 = o2.getPriority();

if (( priority1 == null || priority1 != 2) && priority2 != null && priority2 == 2) {
return 1;
}

if (priority1 != null && priority1 == 2 && (priority2 == null || priority2 != 2)) {
return -1;
}

Date date1 = o1.getDate();
Date date2 = o2.getDate();
if (date1 == null && date2 != null) {
return -1;
}
if (date1 != null && date2 == null) {
return 1;
}
if (date1 != null && date2 != null && !date1.equals(date2)) {
return date1.compareTo(date2);
}

Long id1 = o1.getId();
Long id2 = o2.getId();
if (id1 == null && id2 != null) {
return -1;
}

if (id1 != null && id2 == null) {
return 1;
}

if (id1 != null && id2 != null && id1.longValue() != id2.longValue()) {
return id1.compareTo(id2);
}

String name1 = o1.getName();
String name2 = o2.getName();
if (name1 == null && name2 == null) {
return 0;
}

if (name1 == null) {
return -1;
}

if (name2 == null) {
return 1;
}

return name1.compareTo(name2);
}

}

class MyBean {
private Integer age;
private String name;
private Long id;
private Date date;
private Integer priority;
public Date getDate() {
return date;
}
public void setDate(Date date) {
this.date = date;
}
public Integer getPriority() {
return priority;
}
public void setPriority(Integer priority) {
this.priority = priority;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
}

热心网友 时间:2023-08-28 21:23

用list的迭代器逐条迭代出list内容,可以增加if条件如果满足条件,将赋值给新建的bean,然后置于顶(插入或移动),把这个bean删除
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
成都324公交是否停运 怎么样把Word里的一个单元格选中 在word中如何选择表格的一部分? ...现在要还钱了,我手里没钱。我想问不还钱的话有什么后果?_百度... 我是甘肃省礼县参新农合的,患有脑膜瘤,在当地医院办完转院手续到兰 动能如何转化成电能具体些 cf排位被禁赛怎么解封cf排位禁赛解封方法 我玩CF 没有开挂, 没有卡BUG 为毛线会给我枪王排位禁赛24小时,求... 室内蚂蚁怎么彻底消灭 梦见小学老师的儿子研究罗盘 C#:怎样对dataList表格中的行数据按时间降序排列 两个list列表排序的问题 java中list排序 Java的List怎么排序啊? c# 中 list&lt;A&gt; A 是对象包含三个字段 开始时间,结束时间 ,文本 现在想对list&lt;A&gt;进行排序 datalist中按时间排序的方法求指点? java list&lt;实体&gt; 集合排序问题 根据实体的 time属性,降序排列(距离现在时间越短,越靠前) 两个list, List&lt;User&gt;, List&lt;People&gt;,都有一个时间字段,怎样把两个List内容按时间排序放到一个新的List JAVA实现两个时间list时间段的排列。现在有2个list,list1是开始时间,list2是结 怎样按日期排序LIST集合 List&lt;WorkItem&gt; newResult=new ArrayList&lt;WorkItem&gt;(); 把数据装进list集合后,如何按时间排序,取前10条 C# list&lt;string&gt; 存储的日期信息怎么按时间排序 别人知道我的可以登录我的微信吗? 可你注销吗 可不可以改,怎么改 我的能给别人吗? NEM一TL00,是华为什么型号的手机? 可以关联吗 用可以登录微信吗 微信可以用几个 动态产生一个List【100000】,调用时间函数,测试所有的排序方法,找出最快的排序方法 .net如何从一个list集合中去重排排序 如何对List集合中的数据进行排列 java 怎么将List里面数据排序 c# BindingList或者IList怎么排序(linq) Java:自定义一个顺序,然后对List按照该顺序排序。。 Java List&lt;Object&gt; 根据Object中channelTime字段从小到大排序,并输出最终的List&lt;Object&gt; 广州共有产权房申请条件是什么 共有产权房申请需要哪些条件? 共有产权房基本特征是什么共有产权住房的申请条件有哪些 共有产权房的申请条件是什么? 共有产权房申请需要什么条件? 共有产权房购买需要的条件是什么? 广州推出共有产权住房1366套,你知道什么叫共有产权吗? 广州申请公租房需要什么条件 什么是共有产权住房,它的申请条件是什么? 共有产权房的申请流程是什么? 车损险是什么意思? 车损险指的是什么? 汽车保险车损险包括什么