1.对list集合进行分页

     //startIndex指的是开始的小标 从0开始,pageSize是每页记录数
int toIndex = new Integer(startIndex)+new Integer(pageSize) ;
List<ProjectWorkItemAssignmentVO> listPage = voList.subList(new Integer(startIndex),toIndex>voList.size() ? voList.size():toIndex);

2.Collections对list集合按照指定属性进行排序

       //时间由新到旧进行排列 就是时间由大到小
Collections.sort(voList, new Comparator<ProjectWorkItemAssignmentVO>() {
/**
* @param o1
* @param o2
* @return 返回负数表示:o1 大于o2,
* 返回0 表示:o1和o2相等,
* 返回正数表示:o1小于o2
*/
@Override
public int compare(ProjectWorkItemAssignmentVO o1, ProjectWorkItemAssignmentVO o2) {
if(o1.getsTime().compareTo(o2.getsTime()) == 1){
return -1;
} if(o1.getsTime().compareTo(o2.getsTime()) == 0){
return 0;
}
return 1;
}
});
System.out.println("排序后voList---" + voList);       //时间由旧到新进行排列 就是时间由小到大
Collections.sort(voList, new Comparator<ProjectWorkItemAssignmentVO>() {
/**
* @param o1
* @param o2
* @return 返回正数表示:o1 大于o2,
* 返回0 表示:o1和o2相等,
* 返回负数表示:o1小于o2
*/
@Override
public int compare(ProjectWorkItemAssignmentVO o1, ProjectWorkItemAssignmentVO o2) {
return o1.geteTime().compareTo(o2.geteTime());
}
});     //完成度由低至高 升序
Collections.sort(voList, new Comparator<ProjectWorkItemAssignmentVO>() {
/**
* 由低到高排序
* @param o1
* @param o2
* @return 返回负数表示:o1 小于o2,
* 返回0 表示:o1和o2相等,
* 返回正数表示:o1大于o2
*/
@Override
public int compare(ProjectWorkItemAssignmentVO o1, ProjectWorkItemAssignmentVO o2) {
if (o1.getCompletion() > o2.getCompletion()) {
return 1;
}
if (o1.getCompletion() == o2.getCompletion()) {
return 0;
}
return -1;
}
});

  对于平常数字的排序,只需要比较大下返回对应的正数或者负数来决定按照什么顺序,对于时间日期,需要调用compareTo()方法做比较,具体可以详看对应的api源码

3.java获取指定字符串,一个字符串中有多个相同的

//截取0到倒数第三个/位置之间的字符串,黄色标注部分
String actionRecord = "2018-09-08 14:59:42[Start时间]||2018-09-08 15:40:48[Pause时间]||";
//获取最后一个|的下标
int index = actionRecord.lastIndexOf("|");
//在0-index-1范围内,查找最后一个匹配的的字符串的位置
index = actionRecord.lastIndexOf("|",index-1);
//在0-index-1范围内,查找最后一个匹配的字符串的位置
index = actionRecord.lastIndexOf("|",index-1);
//截取两者之间的字符串
String temp = actionRecord.substring(0,index+1);

  参考连接: https://www.cnblogs.com/dujinyang/p/4788028.html

4.判断一个时间段是否与另一个时间段重合

//判断时间段time1~time2是否与时间段fromTime~toTime重合
if(time1 >= fromTime && time1 < toTime || fromTime >= time1 && fromTime < time2){
//重合
}

5.使用set对list集合去重

//利用set 对list去重复
Set<SPCustomer> set = new HashSet<SPCustomer>(tempList);
//使用去重复后的set 重新构建一个list
List<SPCustomer> tempList2 = new ArrayList<SPCustomer>(set);

Java常用小笔记的更多相关文章

  1. Java常用集合笔记

    最近事情比较少,闲暇之余温习巩固一下Java的一些基础知识,并做一些笔记, Java常用集合, 主要参考的这篇文章:Java常用集合 ArrayList/Vertor 1. ArrayList 的主要 ...

  2. Java常用类笔记(学习尚硅谷java基础教程)

    一.Java根类Object类1.toString()方法 1)以文本对象返回,故toString()的定义为public String toString() {} 2)默认的字符串输出是:包.类名@ ...

  3. Java 常用集合笔记

    自增数组 ArrayList<Integer>G[]=new ArrayList[N] 详细笔记 相关题目 栈 Stack<Integer> stack=new Stack&l ...

  4. html+css常用小笔记(持续更新)

    1 去掉input点击时的蓝色边框 outline:none; 2 禁止文本选中 -webkit-touch-callout: none; /* iOS Safari */ -webkit-user- ...

  5. java学习小笔记(三.socket通信)【转】

    三,socket通信1.http://blog.csdn.net/kongxx/article/details/7288896这个人写的关于socket通信不错,循序渐进式的讲解,用代码示例说明,运用 ...

  6. java常用算法笔记

    1.将一个10进制的c转换为n进制 String s=new BigInteger(c+"",10).toString(n); 2. 求一个解退出 System.exit(0): ...

  7. Java基础复习笔记系列 五 常用类

    Java基础复习笔记系列之 常用类 1.String类介绍. 首先看类所属的包:java.lang.String类. 再看它的构造方法: 2. String s1 = “hello”: String ...

  8. Java常用类学习笔记总结

    Java常用类 java.lang.String类的使用 1.概述 String:字符串,使用一对""引起来表示. 1.String声明为final的,不可被继承 2.String ...

  9. Java 常用类库与技巧【笔记】

    Java 常用类库与技巧[笔记] Java异常体系 Java异常相关知识 Java在其创立的时候就设置了比较有效的处理机制,其异常处理机制主要回答了三个问题:what,where,why what表示 ...

随机推荐

  1. perl模拟登录(1)

    use WWW::Mechanize; my $ua = WWW::Mechanize->new(); $ua->post('http://localhost/dvwa/DVWA-mast ...

  2. 任务调度框架kunka

    kunka kunka是一个任务调度框架.用户只需要在Task接口中实现自己要执行的功能,并且选择合适的执行器,放入TaskManager中,就可以了完成整个任务了. 实现细节 整个任务信息存放在内存 ...

  3. 【Android XML】Android XML 转 Java Code 系列之 介绍(1)

    最近在公司做一个项目,需要把Android界面打包进jar包给客户使用.对绝大部分开发者来说,Android界面的布局以XML文件为主,并辅以少量Java代码进行动态调整.而打包进jar包的代码,意味 ...

  4. C基础 读写锁中级剖析

    引言 读写锁 是为了 解决, 大量 ''读'' 和 少量 ''写'' 的业务而设计的. 读写锁有3个特征: 1.当读写锁是写加锁状态时,在这个锁被解锁之前,所有试图对这个锁加锁的线程都会被阻塞 2.当 ...

  5. 辨别苹果数据线真伪 苹果计算器 Dashboard 知识

    辨别苹果数据线真伪 苹果计算器 Dashboard 知识  苹果数据线真伪的最简单的辨别: 线质柔软 用数据线连接适配器(苹果自带的适配器)充电 连接手机 如果该手机数据线是假的, 在手机上会提示”该 ...

  6. IE7下面iframe滚动条无法用鼠标轮滚 其他浏览器可以

    1.让 IFRAME 隐藏滚动条,通常的做法就是在嵌入  IFRAME 的页面的 CSS 中指定以下规则:   html, body {overflow: hidden}   2.如果只是想隐藏横向滚 ...

  7. 虚拟机 VMware Workstation12 安装OS X 系统

      Windows下虚拟机安装Mac OS X —– VMware Workstation12安装Mac OS X 10.11 本文即将介绍WIN虚拟MAC的教程.完整详细教程(包含安装中的一些问题) ...

  8. 【python】时间戳、字典列表排序

    记录一下昨天学到的知识: 一.文件相关 文件追加:f = open("fname","a")    文件不存在时创建 二.时间戳相关 http://www.jb ...

  9. 从Java Future到Guava ListenableFuture实现异步调用

    原文地址: http://blog.csdn.net/pistolove/article/details/51232004 Java Future     通过Executors可以创建不同类似的线程 ...

  10. electron-builder中NSIS相关配置

    electron-builder中NSIS相关配置 相比较于electron-packager打包,使用electron-builder打包使得包体积更小.在electron-builder中,对于N ...