2013-02-25 20 views
6

文字列を文字配列に変換してから文字配列をarraylistにしたいというこの問題(GUIにキーを送る)に悩まされています。基本的に:文字の配列を文字のarraylistに変換する

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

私はcListフォーム['A', 'B', 'C']の文字のArrayListになりたいです。私はそれを解凍し、それからArrayListを作る方法を知らない。 Arrays.asList() returns a List<char[]>私が欲しい、または必要としているものではありません。

私はループしてリストに追加できることを知っていますが、私はもっと簡単なものを探しています(確かに存在します)。

答えて

3

私の知る限り、これはコアJDKでは存在しませんが、機能はいくつかの共通ライブラリによって提供されています。例えば

は、アパッチ・コモンズラングArrayUtilsに次のシグネチャを持つメソッドを有する。

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

@Bhesh Gurungはもっと直接的な方法を探していた有益な答えがありましたが、これを私の答えとして受け入れる(Google Guavaをインストールする)。 – arynaq

7

あなたは、配列をループする必要があります。

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

注:のみ参照型ではないプリミティブのために働くArrays.asList()を。

+0

私はそれがautoboxプリミティブであると確信しています。パフォーマンスについて非常に心配していない限り、私はそれを使用しない理由は見当たりません。 – Aurand

+1

@Aurand、実際はありません。 'a '、' b '、' c 'の配列を持つ配列は、実際には1つの要素だけを持つ' List'を返します。 'Arrays.asList(new char [] a'、 'b'、 'c'}) 3つのアイテムを持つ 'List'ではなく、おそらく期待されるでしょう。 – danidemi

2

Character [] toObject(char [] input) 

同様に、Googleのグアバライブラリは、文字数クラスであってもより直接的な方法を有しています

Character[] chArray = {'n','a','n','d','a','n','k','a','n','a','n'}; 

List<Character> arrList = Arrays.asList(chArray); 
関連する問題