java分页与排序orderby_mysql排序分页

java分页与排序orderby_mysql排序分页java分页与排序代码如下不解释代码如下不解释publicclassSortObimplementsComparable{privateStringname;privateintage;privateDatecreateDate;publicSortOb(Stringname,intage,DatecreateDate){ this.name=name; this.age=age; this.createDate=createDate;}

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

java分页与排序

代码 如下不解释

public class SortOb implements Comparable{

private String  name;
private int age;
private Date createDate;

public SortOb(String name,int age,Date createDate) {
	this.name = name;
	this.age = age;
	this.createDate = createDate;
}

public Date getCreateDate() {
	return createDate;
}

public void setCreateDate(Date createDate) {
	this.createDate = createDate;
}

public String getName() {
	return name;
}
public void setName(String name) {
	this.name = name;
}
public int getAge() {
	return age;
}
public void setAge(int age) {
	this.age = age;
}

// @Override
// public int compareTo(SortOb o) {

// return this.age – o.getAge();
// }
@Override
public int compareTo(SortOb o) {

try {

Date dt1 = o.getCreateDate();
Date dt2 = this.getCreateDate();
if (dt1.getTime() > dt2.getTime()) {

return -1;//小的放前面
}else {

return 1;
}
} catch (Exception e) {

e.printStackTrace();
}
return 0;
}
}

public class ListSortTest {

public static void main(String[] args) throws ParseException {
	List<SortOb> list = new ArrayList<SortOb>();
	DateFormat format1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); 
	Date dateA = format1.parse("2002-1-18 22:01:01");
	Date dateB = format1.parse("2001-1-18 22:01:01");
	Date dateC = format1.parse("2005-1-18 22:01:01");
	Date dateD = format1.parse("2004-1-18 22:01:01");
	Date dateE = format1.parse("2006-1-18 22:01:01");
	Date dateF = format1.parse("2003-1-18 22:01:01");
	Date dateG = format1.parse("2007-1-18 22:01:01");
	Date dateH = format1.parse("2009-1-18 22:01:01");
	Date dateI = format1.parse("2006-1-18 22:01:01");
	Date dateJ = format1.parse("2008-1-18 22:01:01");
	Date dateK = format1.parse("2010-1-18 22:01:01");
	Date dateL = format1.parse("2009-1-18 22:01:01");

	SortOb a = new SortOb("bb", 2,dateA);
	SortOb b = new SortOb("aa", 1,dateB);
	SortOb c = new SortOb("ee", 5,dateC);
	SortOb d = new SortOb("dd", 4,dateD);
	SortOb e = new SortOb("ff", 6,dateE);
	SortOb f = new SortOb("cc", 3,dateF);
	SortOb g = new SortOb("gg", 7,dateG);
	SortOb h = new SortOb("ii", 9,dateH);
	SortOb i = new SortOb("zz", 6,dateI);
	SortOb j = new SortOb("hh", 8,dateJ);
	SortOb k = new SortOb("hh", 10,dateK);
	SortOb l = new SortOb("jj", 9,dateL);
	list.add(a);
	list.add(b);
	list.add(c);
	list.add(d);
	list.add(e);
	list.add(f);
	list.add(g);
	list.add(h);
	list.add(i);
	list.add(j);
	list.add(k);
	list.add(l);
	Collections.sort(list, (SortOb b1, SortOb b2) -> b2.compareTo(b1));

	Map<String, Object> map = getPagingResultMap(list,2,10);
	List<SortOb> pageList = (List<SortOb>) map.get("result");

	for (SortOb ob : pageList) {
		SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
		String dateString = formatter.format(ob.getCreateDate());
		System.out.println(dateString);
	}

// for (SortOb ob : list) {

// System.out.println(ob.getAge());
// }

}

public static  Map<String, Object> getPagingResultMap(List<SortOb> list, Integer currPageNo, Integer pageSize) {
	Map<String, Object> retMap = new HashMap<>();

	if (list.isEmpty()) {
		retMap.put("result", Collections.emptyList());
		retMap.put("totalPageNum", 0);
		return retMap;
	}
	
	int totalRowNum = list.size();
	
	//页数超过数据总页数返回空list
	if (totalRowNum< pageSize * (currPageNo-1)) {
		retMap.put("result", Collections.emptyList());
		retMap.put("totalPageNum", totalRowNum);
		return retMap;
	}
	
	int totalPageNum = (totalRowNum - 1) / pageSize + 1;

	int realPageNo = currPageNo;
	if (currPageNo > totalPageNum) {
		realPageNo = totalPageNum;
	} else if (currPageNo < 1) {
		realPageNo = 1;
	}

	int fromIdx = (realPageNo - 1) * pageSize;
	int toIdx = realPageNo * pageSize > totalRowNum ? totalRowNum : realPageNo * pageSize;
			
	List<SortOb> result = list.subList(fromIdx, toIdx);
	
	retMap.put("result", result);
	retMap.put("totalPageNum", totalPageNum);
	return retMap;

}

// public static void main(String[] args) {

// int totalRowNum = 12;
// int pageSize = 10;
// int currPageNo = 2;
// System.out.println((totalRowNum< pageSize * (currPageNo-1)));
// }

}

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/186497.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • OpenStack SR-IOV

    OpenStack SR-IOV

    2022年3月4日
    148
  • mfc多线程串口通信_python进程和线程之间通信

    mfc多线程串口通信_python进程和线程之间通信AfxBeginThead全局变量参数传递消息传递线程通信目录(?)[-]线程间的通信线程之间的通信简介全局变量方式参数传递方式消息传递方式线程同步法线程间的通信1.线程之间的通信简介一般而言,在一个应用程序中(即进程),一个线程往往不是孤立存在的,常常需要和其它线程通信,以执行特定的任务。如主线程和次线程,次线程与次线程,工作线程和

    2022年9月28日
    2
  • 傅里叶变换公式「建议收藏」

    傅里叶变换公式「建议收藏」傅里叶变换的目的:有些信号在时域上是很难看出什么特征的,但是如果变换到频域之后,就很容易看出特征了。1、FS:(Fourierseries)连续时间周期信号的傅里叶级数,时域上任意连续的周期信号可以分解为无限多个正弦信号之和,在频域上表示为离散非周期的信号,即时域连续周期对应频域离散非周期的特点。时域上连续周期函数,采用FS(傅里叶级数)分解为频域上为非周期、连…

    2022年7月17日
    8
  • JAVA设计模式之享元模式

    解释一下概念:也就是说在一个系统中如果有多个相同的对象,那么只共享一份就可以了,不必每个都去实例化一个对象。比如说一个文本系统,每个字母定一个对象,那么大小写字母一共就是52个,那么就要定义52个对象。如果有一个1M的文本,那么字母是何其的多,如果每个字母都定义一个对象那么内存早就爆了。那么如果要是每个字母都共享一个对象,那么就大大节约了资源。  在Flyweight模式中,由于要产生各种各样

    2022年3月11日
    48
  • Dubbo 负载均衡策略和集群容错策略都有哪些?动态代理策略呢?

    Dubbo 负载均衡策略和集群容错策略都有哪些?动态代理策略呢?面试题dubbo负载均衡策略和集群容错策略都有哪些?动态代理策略呢?面试官心理分析继续深问吧,这些都是用dubbo必须知道的一些东西,你得知道基本原理,知道序列化是什么协议,还得知道具体用dubbo的时候,如何负载均衡,如何高可用,如何动态代理。说白了,就是看你对dubbo熟悉不熟悉:dubbo工作原理:服务注册、注册中心、消费者、代理通信、负载均衡; 网络通…

    2022年7月11日
    23
  • EmguCV 常用函数功能说明「建议收藏」

    AbsDiff,计算两个数组之间的绝对差。dst(I)c=abs(src1(I)c-src2(I)c)。所有数组必须具有相同的数据类型和相同的大小(或ROI大小)。累加,将整个图像或其所选区域添加到累加器和。累积产品,将2张图像或其选定区域的产品添加到累加器中。AccumulateSquare,将输入src或其选定的区域,增加到功率2,添加到累加器sqsum。累积权重,计算输

    2022年4月8日
    46

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号