1.对list集合进行分页

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

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

复制代码
    //时间由新到旧进行排列 就是时间由大到小
Collections.sort(voList, new Comparator() {
/**

  • @param o1
  • @param o2
  • @return 返回负数表示:o1 大于o2,
  • 返回0 表示:o1和o2相等,
  • 返回正数表示:o1小于o2br/>*/
    @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() {
/**

  • @param o1
  • @param o2
  • @return 返回正数表示:o1 大于o2,
  • 返回0 表示:o1和o2相等,
  • 返回负数表示:o1小于o2br/>*/
    @Override
    public int compare(ProjectWorkItemAssignmentVO o1, ProjectWorkItemAssignmentVO o2) {
    return o1.geteTime().compareTo(o2.geteTime());
    }
    });

        //完成度由低至高 升序
    Collections.sort(voList, new Comparator() {
    /**

  • 由低到高排序
  • @param o1
  • @param o2
  • @return 返回负数表示:o1 小于o2,
  • 返回0 表示:o1和o2相等,
  • 返回正数表示:o1大于o2br/>*/
    @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 set = new HashSet(tempList);
//使用去重复后的set 重新构建一个list
List tempList2 = new ArrayList(set);