title: Java常用代码块 date: 2021-10-28 tags: Java comments: true
为了减少手写出现的错误,可以直接复制使用,大部分是经常使用的代码,对map操作,list 分组,排序,后续可以放到IDEA做成快捷键
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;
}
for (Map.Entry<String, Object> m : map.entrySet()) {
System.out.println("key:" + m.getKey() + " value:" + m.getValue());
}
//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<String> stortList = list.stream().sorted().collect(Collectors.toList());
//根据对象某个属性排序
List<Object> sortList = objectList.stream().sorted(Comparator.comparing(Object::getAttr)
.reversed()).collect(Collectors.toList());
List<List<Long>> splitList = Lists.partition(list, 200);
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);
DateTimeFormatter dateTimeFormatter = DateTimeFormat.forPattern("yyyy-MM-dd HH:mm:ss");
DateTime dateTimeStart = dateTimeFormatter.parseDateTime("2022-09-12 00:00:00");
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("无交集");
}