本文提供了三种方式,请自行参考

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

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐