实例:List<String> 转List<BigDecimal>
类型转换自己写最笨的就是循环,然后再赋值的流程了吧,速度慢不说,还不高大上。下面两种方法来解决这个问题。
首先推出自己比较支持的方法:
不需要其他依赖包,方法简单,高大上(JDK8版本以上,要支持lambda表达式)
List<Long> numList1 = new ArrayList<>();
numList1.add(1L);
numList1.add(2L);
numList1.add(3L);
List<String> strList1 = numList1.stream().map(String::valueOf).collect(Collectors.toList());
System.err.println("List<Long> to List<String> ------::"+strList1);
//List<String> to List<Long>
List<String> strList2 = new ArrayList<>();
strList2.add("1");
strList2.add("2");
strList2.add("3");
List<Long> numList2 = strList2.stream().map(s -> Long.parseLong(s.trim())).collect(Collectors.toList());
System.err.println("List<String> to List<Long>------::"+numList2);
List<BigDecimal> voList = strList1.stream().map(str -> new BigDecimal(str.trim())).collect(Collectors.toList());
System.out.println("List<String> to List<Long>------::"+numList2);
第二种:
依赖谷歌的一个jar包,不过也很常用。
com.google.guava
// list 为 List<String> 类型
List<BigDecimal> voList = Lists.transform(list, (entity) -> {
return new BigDecimal(entity);
});
List<BigDecimal> voList = Lists.transform(list, new Function<String, BigDecimal>() {
public BigDecimal apply(String string) {
return new BigDecimal(string);
}
});