|
@@ -1,142 +0,0 @@
|
|
|
----
|
|
|
-title: Java常用代码块
|
|
|
-date: 2020-10-28
|
|
|
-tags: Java
|
|
|
-cover: https://static.jqwei.com/blog/img/IMG_3460.PNG
|
|
|
-comments: true
|
|
|
-categories: 编程语言
|
|
|
----
|
|
|
-
|
|
|
-## java常用代码块
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-> 为了减少手写出现的错误,可以直接复制使用,大部分是经常使用的代码,对map操作,list 分组,排序,后续可以放到IDEA做成快捷键
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-| 对象 | 排序 | 分组 |分页|
|
|
|
-| -------- | -------- | -------- |-------|
|
|
|
-| list | √ | √ |√|
|
|
|
-| map | √ | ||
|
|
|
-| set | | ||
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-#### map 根据Key排序
|
|
|
-
|
|
|
-```Java
|
|
|
-private static Map<String, Object> sortByKey(Map<String, Object> map) {
|
|
|
- Map<String, Object> result = new LinkedHashMap<>(map.size());
|
|
|
- map.entrySet().stream()
|
|
|
- .sorted(Map.Entry.comparingByKey())
|
|
|
- .forEachOrdered(e -> result.put(e.getKey(), e.getValue()));
|
|
|
- return result;
|
|
|
- }
|
|
|
-```
|
|
|
-
|
|
|
-
|
|
|
-#### map 进行遍历
|
|
|
-
|
|
|
-```Java
|
|
|
-
|
|
|
- for (Map.Entry<String, Object> m : map.entrySet()) {
|
|
|
- System.out.println("key:" + m.getKey() + " value:" + m.getValue());
|
|
|
- }
|
|
|
-
|
|
|
-```
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-#### list 对象根据某个字段分组
|
|
|
-
|
|
|
-``` Java
|
|
|
- //1 按照某个字段
|
|
|
- Map<Object,List<Object>> map = demoList.stream().collect(Collectors.groupingBy(Object::getAttr));
|
|
|
- //2 按照多个字段
|
|
|
- Map<String, List<Object>> groupBy = objectList.stream().collect(Collectors
|
|
|
- .groupingBy(o -> o.getAttr1() + "_" + o.getAttr2()));
|
|
|
-
|
|
|
- Set<Long> attrs = list.stream().map(Object::getAttr).collect(Collectors.toSet());
|
|
|
-
|
|
|
-```
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-#### list 用stream进行排序 .
|
|
|
-
|
|
|
-``` Java
|
|
|
-
|
|
|
- //根据单个属性排序
|
|
|
- List<String> stortList = list.stream().sorted().collect(Collectors.toList());
|
|
|
- //根据对象某个属性排序
|
|
|
- List<Object> sortList = objectList.stream().sorted(Comparator.comparing(Object::getAttr)
|
|
|
- .reversed()).collect(Collectors.toList());
|
|
|
-
|
|
|
-
|
|
|
-```
|
|
|
-
|
|
|
-#### list 用Guava进行拆分分页
|
|
|
-
|
|
|
-```Java
|
|
|
- List<List<Long>> splitList = Lists.partition(list, 200);
|
|
|
-```
|
|
|
-
|
|
|
-#### jodaTime 两个日期相差小时,天 ,分钟
|
|
|
-```Java
|
|
|
- DateTime dt1 = new DateTime("2020-09-05");
|
|
|
- dt1 = dt1.plusDays(1).plusMinutes(1).plusHours(1);
|
|
|
- DateTime dt2 = new DateTime("2020-09-06");
|
|
|
-
|
|
|
- System.out.println(dt1);
|
|
|
- System.out.println(dt2);
|
|
|
-
|
|
|
- //时间dt2-时间dt1 的差
|
|
|
- int hours = Hours.hoursBetween(dt1, dt2).getHours();
|
|
|
- int days = Days.daysBetween(dt1,dt2).getDays();
|
|
|
- int minutes = Minutes.minutesBetween(dt1,dt2).getMinutes();
|
|
|
-
|
|
|
- System.out.println(hours+" "+days+" "+minutes);
|
|
|
-```
|
|
|
-
|
|
|
-### 两个时间是否有交集
|
|
|
-
|
|
|
-```Java
|
|
|
- Date startTime1 = new DateTime("2021-01-10").toDate();
|
|
|
- Date endTime1 = new DateTime("2021-02-16").toDate();
|
|
|
- Date startTime2 = new DateTime("2021-01-09").toDate();
|
|
|
- Date endTime2 = new DateTime("2021-01-24").toDate();
|
|
|
-
|
|
|
- if ((startTime1.getTime() > startTime2.getTime()
|
|
|
- && startTime1.getTime() < endTime2.getTime())
|
|
|
- || (endTime1.getTime() > startTime2.getTime()
|
|
|
- && endTime1.getTime() < endTime2.getTime())
|
|
|
- || (startTime2.getTime() > startTime1.getTime()
|
|
|
- && endTime2.getTime() < endTime1.getTime())
|
|
|
- ) {
|
|
|
- System.out.println("有交集");
|
|
|
- }
|
|
|
- if (((startTime1.getTime() >= startTime2.getTime())
|
|
|
- || (endTime1.getTime() <= startTime2.getTime()))
|
|
|
- && ((startTime1.getTime() <= startTime2.getTime())
|
|
|
- || (startTime1.getTime() >= endTime2.getTime()))) {
|
|
|
- System.out.println("无交集");
|
|
|
- }
|
|
|
-```
|
|
|
-
|
|
|
-
|
|
|
-#### 设置新的版本号
|
|
|
-mvn versions:set -DnewVersion=1.1.3
|
|
|
-
|
|
|
-#### 当新版本号设置不正确时可以撤销新版本号的设置
|
|
|
-mvn versions:revert
|
|
|
-
|
|
|
-#### 确认新版本号无误后提交新版本号的设置
|
|
|
-mvn versions:commit
|