【问题标题】:Converting array of characters to arraylist of characters将字符数组转换为字符数组列表
【发布时间】:2013-02-11 03:55:10
【问题描述】:

我遇到了这个问题(向 GUI 发送密钥),我将字符串转换为字符数组,然后我希望字符数组作为数组列表。本质上:

String s = "ABC";
char[] cArray = s.toCharArray();
ArrayList<Character> cList = ??

我希望cList 成为['A', 'B', 'C'] 形式的字符数组列表。我不知道如何打开它,然后用它制作一个 ArrayList。 Arrays.asList() returns a List&lt;char[]&gt; 这不是我想要或需要的。

我知道我可以循环并添加到列表中,我正在寻找更简单的东西(肯定存在)。

【问题讨论】:

    标签: java arrays list


    【解决方案1】:

    你必须遍历数组:

    List<Character> cList = new ArrayList<Character>();
    for(char c : cArray) {
        cList.add(c);
    }
    

    注意:Arrays.asList() 仅适用于引用类型而不是原语。

    【讨论】:

    • 我很确定它会自动装箱原语。除非您非常关心性能,否则我没有理由不使用它。
    • @Aurand,不是真的。 Arrays.asList(new char[]{'a','b', 'c'}) 实际上返回一个只有一个元素的 List:一个包含“a”、“b”和“c”的数组,而不是像人们期望的那样包含三个项目的 List
    【解决方案2】:
    Character[] chArray = {'n','a','n','d','a','n','k','a','n','a','n'};
    
    List<Character> arrList = Arrays.asList(chArray);
    

    【讨论】:

      【解决方案3】:

      据我所知,核心 JDK 中不存在此功能,但该功能由几个通用库提供。

      例如,Apache Commons Lang 在 ArrayUtils 中有一个具有以下签名的方法:

      Character [] toObject(char [] input)
      

      同样,Google Guava 库在 Chars 类中有一个更直接的方法:

      public static List<Character> asList(char... backingArray)
      

      【讨论】:

      • 虽然@Bhesh Gurung 有一个有用的答案,但我正在寻找更直接的方法,我会接受这个作为我的答案(并开始安装 Google Guava)。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-07-14
      • 2022-07-26
      • 1970-01-01
      相关资源
      最近更新 更多