• Java中List, Integer[], int[]的相互转换


    Java中List, Integer[], int[]的相互转换

    有时候list和数组int[]转换很麻烦。

    List和String[]也同理。难道每次非得写一个循环遍历吗?其实一步就可以搞定。

    本文涉及到一些Java8的特性。如果没有接触过就先学会怎么用,然后再细细研究。

    import java.util.Arrays;
    import java.util.List;
    import java.util.stream.Collectors;
     
    public class Main {
        public static void main(String[] args) {
            int[] data = {4, 5, 3, 6, 2, 5, 1};
     
            // int[] 转 List<Integer>
            List<Integer> list1 = Arrays.stream(data).boxed().collect(Collectors.toList());
            // Arrays.stream(arr) 可以替换成IntStream.of(arr)。
            // 1.使用Arrays.stream将int[]转换成IntStream。
            // 2.使用IntStream中的boxed()装箱。将IntStream转换成Stream<Integer>。
            // 3.使用Stream的collect(),将Stream<T>转换成List<T>,因此正是List<Integer>。
     
            // int[] 转 Integer[]
            Integer[] integers1 = Arrays.stream(data).boxed().toArray(Integer[]::new);
            // 前两步同上,此时是Stream<Integer>。
            // 然后使用Stream的toArray,传入IntFunction<A[]> generator。
            // 这样就可以返回Integer数组。
            // 不然默认是Object[]。
     
            // List<Integer> 转 Integer[]
            Integer[] integers2 = list1.toArray(new Integer[0]);
            //  调用toArray。传入参数T[] a。这种用法是目前推荐的。
            // List<String>转String[]也同理。
     
            // List<Integer> 转 int[]
            int[] arr1 = list1.stream().mapToInt(Integer::valueOf).toArray();
            // 想要转换成int[]类型,就得先转成IntStream。
            // 这里就通过mapToInt()把Stream<Integer>调用Integer::valueOf来转成IntStream
            // 而IntStream中默认toArray()转成int[]。
     
            // Integer[] 转 int[]
            int[] arr2 = Arrays.stream(integers1).mapToInt(Integer::valueOf).toArray();
            // 思路同上。先将Integer[]转成Stream<Integer>,再转成IntStream。
     
            // Integer[] 转 List<Integer>
            List<Integer> list2 = Arrays.asList(integers1);
            // 最简单的方式。String[]转List<String>也同理。
     
            // 同理
            String[] strings1 = {"a", "b", "c"};
            // String[] 转 List<String>
            List<String> list3 = Arrays.asList(strings1);
            // List<String> 转 String[]
            String[] strings2 = list3.toArray(new String[0]);
     
        }
    }
    

    打印数组

         Object[] paramValues;
            for (int i = 0; i < paramValues.length; i++) { 
                System.out.print(paramValues[i] + ", "); 
            }
            for(Object n: paramValues) 
            System.out.println(n+", ");
            System.out.println( Arrays.toString(paramValues) );
            System.out.println(Arrays.asList(paramValues));
            Arrays.asList(arr).stream().forEach(s -> System.out.println(s));//java8  
    
  • 相关阅读:
    亚像素显示详解
    一文看懂显示关键材料之彩色滤光片(Color Filter)
    Android Camera2 Opengles2.0 实时滤镜(冷暖色/放大镜/模糊/美颜)
    Android Camera2 预览,拍照,人脸检测并实时展现
    Camera2点击对焦实现2
    关于Android Camera2 API 的自动对焦的坑
    Camera2点击对焦实现
    Android 新老两代 Camera API 大起底
    Android Camera2 参数调节关键字翻译集合,常用关键字解析
    MediaCodec在Android视频硬解码组件的应用
  • 原文地址:https://www.cnblogs.com/wenqiangit/p/11282521.html
Copyright © 2020-2023  润新知