工具类
一、深拷贝
1.List深拷贝(基本类型)
public static <T> List<T> deepCopy1(List<T> list) {
List<T> newList = new ArrayList<T>();
CollectionUtils.addAll(newList, new Object[list.size()]);
Collections.copy(newList, list);
return newList;
}
2.List深拷贝(复杂类型,序列化及反序列化)
public static <T> List<T> deepCopy(List<T> src) {
try (ByteArrayOutputStream byteOut = new ByteArrayOutputStream();
ObjectOutputStream outputStream = new ObjectOutputStream(byteOut);) {
outputStream.writeObject(src);
try (ByteArrayInputStream byteIn = new ByteArrayInputStream(byteOut.toByteArray());
ObjectInputStream inputStream = new ObjectInputStream(byteIn);) {
return (List<T>) inputStream.readObject();
}
} catch (Exception e) {
e.printStackTrace();
}
return Collections.emptyList();
}
二、数据格式转化
1.浮点型数据格式转化,并去掉小数点后多余的零
DecimalFormat decimalFormat = new DecimalFormat("###.##");
System.out.println(decimalFormat.format(0.0123f));
System.out.println(decimalFormat.format(3.001234f));
2.字符串转换成时间格式
public static void main(String[] args) {
DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyyMMddHH");
System.out.println(LocalDateTime.parse("2020110405", dtf));
}
三、字符串反转
public static String reverse(String originStr) {
if(originStr == null || originStr.length() <= 1)
return originStr;
return reverse(originStr.substring(1)) + originStr.charAt(0);
}