【问题标题】:what is the most optimial way to convert Arraylist<Integer> to char[]将 Arraylist<Integer> 转换为 char[] 的最佳方法是什么
【发布时间】:2019-02-12 06:59:56
【问题描述】:

我想知道是否有可能通过流 API 进行转换

List<Integer> li = Arrays.asList(1,2,3,45,678); 

char[] ch 而不进入String 的中间阶段?我找不到。

【问题讨论】:

  • 您的预期输出是什么?

标签: java arraylist java-8 java-stream


【解决方案1】:

可能是一种遍历列表并将值分配给数组中相应索引的方法:

IntStream.range(0, li.size())
         .forEach(i -> ch[i] = (char) li.get(i).intValue());

或者如果原语不是必须的,那么类似:

Character[] ch = li.stream()
                   .map(i -> (char) i.intValue())
                   .toArray(Character[]::new);

【讨论】:

    【解决方案2】:

    我实现了解决方案,但我必须有一个中间 String 转换。

    List<Integer> li = Arrays.asList(1,2,3,45,678); 
            String Str =li.toString();
            char [] ch = new char[Str.length()];
            for(int i=0;i<Str.length();i++)
            {
             ch[i] =    Str.charAt(i);
            }
            for(char cc:ch)
            {        
                System.out.print(cc);
            }
    

    输出:[1、2、3、45、678]

    【讨论】:

      【解决方案3】:

      我认为简单的方法是声明一个字符数组,并通过for循环和toArray()函数将列表数组保存在char数组中。

      【讨论】:

        猜你喜欢
        • 2023-04-11
        • 1970-01-01
        • 2013-12-22
        • 2015-05-15
        • 2012-08-10
        • 1970-01-01
        • 2016-05-29
        • 2012-02-29
        • 1970-01-01
        相关资源
        最近更新 更多