开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第1天
以下只是个人常用的一些代码片段总结,如有不对还请指正
获取时间戳
//获取完整的秒时间戳
Instant.now().getEpochSecond();//10
//毫秒级时间戳
System.currentTimeMillis();
获取几天前的时间
public static String getPastDate(int past) {
Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.DAY_OF_YEAR, calendar.get(Calendar.DAY_OF_YEAR) - past);
Date today = calendar.getTime();
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
String result = format.format(today);
return result;
}
String s = getPastDate(7);
JSON com.alibaba.fastjson.JSONObject
字符串转json
String resultw = "{}";
JSONObject jsonObject1 = JSON.parseObject(resultw);
JSONArray转list
JSONArray jsonArray = new JSONArray();
jsonArray.add(new User("水果","苹果","12345",1,"3"));
jsonArray.add(new User("水果","桃子","12345",4,"4"));
jsonArray.add(new User("粮食","麦子","12345",5,"6"));
jsonArray.add(new User("粮食","玉米","12345",3,"1"));
List<User> users = JSONObject.parseArray(jsonArray.toJSONString(), User.class);
System.out.println(users.toString());
结果
[User(type=水果, name=苹果, phone=12345, age=1, number=3), User(type=水果, name=桃子, phone=12345, age=4, number=4), User(type=粮食, name=麦子, phone=12345, age=5, number=6), User(type=粮食, name=玉米, phone=12345, age=3, number=1)]
日期
获取近七天日期
/**
* 获取近七天日期
* @return
*/
private List<String> get(){
List<String> dateList = new ArrayList<>();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
for (int i = 1; i < 8; i++) {
Date date = DateUtils.addDays(new Date(), -i);
String formatDate = sdf.format(date);
dateList.add(formatDate);
}
//排序
Collections.reverse( dateList );
return dateList;
}
近六个月
// 带年份
List<String> resultList = new ArrayList<String>();
Calendar cal = Calendar.getInstance();
//近六个月
cal.set(Calendar.MONTH, cal.get(Calendar.MONTH)+1); //要先+1,才能把本月的算进去
for(int i=0; i<6; i++){
cal.set(Calendar.MONTH, cal.get(Calendar.MONTH)-1); //逐次往前推1个月
resultList.add(String.valueOf(cal.get(Calendar.YEAR))
+"-"+ (cal.get(Calendar.MONTH)+1 < 10 ? "0" +
(cal.get(Calendar.MONTH)+1) : (cal.get(Calendar.MONTH)+1)));
}
//排序
Collections.reverse( resultList );
// 不带年份
List<String> resultList = new ArrayList<String>();
Calendar cal = Calendar.getInstance();
//近六个月
cal.set(Calendar.MONTH, cal.get(Calendar.MONTH)+1); //要先+1,才能把本月的算进去
for(int i=0; i<6; i++){
cal.set(Calendar.MONTH, cal.get(Calendar.MONTH)-1); //逐次往前推1个月
resultList.add( (cal.get(Calendar.MONTH)+1 < 10 ? "0"
+ (cal.get(Calendar.MONTH)+1) : String.valueOf((cal.get(Calendar.MONTH)+1))));
}
stream流
public class User {
private String type;
private String name;
private String phone;
private Integer age;
private String number;
public User(String type, String name, String phone, Integer age, String number) {
this.type = type;
this.name = name;
this.phone = phone;
this.age = age;
this.number = number;
}
}
List<User> list = new ArrayList<>();
list.add(new User("水果","苹果","12345",1,"3"));
list.add(new User("水果","桃子","12345",4,"4"));
list.add(new User("粮食","麦子","12345",5,"6"));
list.add(new User("粮食","玉米","12345",3,"1"));
list.add(new User("电器","冰箱","12345",8,"9"));
list.add(new User("电器","电视","12345",9,"2"));
过滤
fileter 里面的条件可以随意更换,需要怎么过滤添加什么条件,可以理解为if判断。
List<User> users = list.stream().filter(m -> m.getType().contains("水果")).collect(Collectors.toList());
System.out.println(users.toString());
结果
[User(type=水果, name=苹果, phone=12345), User(type=水果, name=桃子, phone=12345)]
排序
可以排序字符串
List<User> collect = list.stream().sorted(Comparator.comparing(User::getNumber)).collect(Collectors.toList());
结果
[User(type=粮食, name=玉米, phone=12345, age=3, number=1), User(type=电器, name=电视, phone=12345, age=9, number=2), User(type=水果, name=苹果, phone=12345, age=1, number=3), User(type=水果, name=桃子, phone=12345, age=4, number=4), User(type=粮食, name=麦子, phone=12345, age=5, number=6), User(type=电器, name=冰箱, phone=12345, age=8, number=9)]
分组转map
JSONArray jsonArray = new JSONArray();
jsonArray.add(new User("水果","苹果","12345",1,"3"));
jsonArray.add(new User("水果","桃子","12345",4,"4"));
jsonArray.add(new User("粮食","麦子","12345",5,"6"));
jsonArray.add(new User("粮食","玉米","12345",3,"1"));
Map<String, List<User>> collect1 = list.stream().collect(Collectors.groupingBy(User::getType));
结果
{水果=[User(type=水果, name=苹果, phone=12345, age=1, number=3), User(type=水果, name=桃子, phone=12345, age=4, number=4)],
电器=[User(type=电器, name=冰箱, phone=12345, age=8, number=9), User(type=电器, name=电视, phone=12345, age=9, number=2)],
粮食=[User(type=粮食, name=麦子, phone=12345, age=5, number=6), User(type=粮食, name=玉米, phone=12345, age=3, number=1)]}
List 过滤Null
public static void main(String[] args) {
List<String> list = Arrays.asList("ye", "chuan", null);
List<String> collect = list.stream().map(e -> {
if (e == null) {
return null;
}
return e;
}).filter(Objects::nonNull).collect(Collectors.toList());
System.out.println(collect);
}