Java stream 实现 List<String> 转List<Long>
·
本文提供了三种方式,请自行参考
import org.apache.commons.lang.ArrayUtils;
import javax.swing.plaf.synth.SynthOptionPaneUI;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
import java.util.stream.Stream;
public class TestStreamTrans {
public static void sorted() {
List<String> list = Arrays.asList("5", "4", "3", "2", "7", "1", "6", "0", "8");
//方式一:纯人工转换
List<Long> newList1 = list.stream().map(s -> Long.parseLong(s.trim())).collect(Collectors.toList());
//方式二:处理返回LongStream;LongStream.boxed 将 LongStream 转换为 Stream<Long> ,然后您可以收集到列表中
List<Long> newList2 = list.stream().mapToLong(t -> Long.parseLong(t.trim())).boxed().collect(Collectors.toList());
//方式三:转数组在转为list
long[] array = list.stream().mapToLong(t -> Long.parseLong(t.trim())).toArray();
Long[] objectArray = ArrayUtils.toObject(array);
List<Long> newList3 = new ArrayList<>(Arrays.asList(objectArray));
System.out.println("原始list:" + list);
System.out.println("转为数值list1:" + newList1);
System.out.println("转为数值list2:" + newList2);
System.out.println("转为数值list3:" + newList3);
System.out.print("数组:");
Stream.of(objectArray).forEach(System.out::print);
}
public static void main(String[] args) {
sorted();
}
}
打印输出:
原始list:[5, 4, 3, 2, 7, 1, 6, 0, 8]
转为数值list1:[5, 4, 3, 2, 7, 1, 6, 0, 8]
转为数值list2:[5, 4, 3, 2, 7, 1, 6, 0, 8]
转为数值list3:[5, 4, 3, 2, 7, 1, 6, 0, 8]
数组:543271608
更多推荐
所有评论(0)