2011-12-14 14 views
0

私のメソッドの1つは、ループ内でString []配列を返します。ループの実行中に、これらのString []配列を別のString []配列に追加したいとします。私は以下のようなものが欲しい。それはypeの不一致を与えます:String []からStringエラーに変換できません。String []配列を別のString []配列に追加する

String[] searchResultList = new String[25]; 
int count = 0; 
for (...) { 
      String[] resultList = getArray(parameter); 
      searchResultList[count] = resultList; 
      count++; 
     } 

答えて

6

さてあなたは、別の文字列の配列として文字列配列の要素を設定しようとしました。あなたはそれをすることはできません。

あなたは文字列配列(String[][])のごsearchResultList配列を行う必要があるか、searchResultListに​​内のすべての文字列をコピーする必要がありますどちらか。

どのような方法を選んでも、配列の代わりにList<String>を使用することをお勧めします。リストが大きくなるにつれて、配列サイズの任意の上限をハードコードする必要はありません。

0

変数をString変数に格納しますが、String[]を追加してください。これは正常です。

searchResultListArrayList<String>に、またgetArray()をこのようなArrayListにも戻してみませんか?このようにして、すべての要素をある配列から別の配列に追加するには、ArrayUtils.addAll(..)を使用する必要があります。searchResultList.add(getArray(parameter));

+0

カントーそれを試していません。 –

+1

List <>には '.toArray()'操作があることは知っていますか? – fge

+0

@imrantariq - 要件の*にもかかわらずList *を使用できます。それについて考える... –

0

0

Stringを格納する配列内にString[] - つまり文字列配列 - いくつかの文字列 - を格納しようとしています。つまり、ただ1つの文字列です。 1つの袋を別の袋の中に直接入れることができます。まず袋から物を取り出す必要があります。

だから、あなたが何をする必要があるかです:

  1. searchResultList配列
  2. に1で返さ​​配列1のエントリを追加します。そして、すべて保持するためにあなたがsearchResultList配列のサイズを変更してください彼らは自動的に成長し、一度に複数の項目を追加することができますので、あなただけのuse a Listをできた新しい値

それとも、より良い解決策:

List<String> searchResultList = new ArrayList<String>(); 
for (...) { 
    String[] resultList = getArray(parameter); 
    searchResultList.addAll(Arrays.asList(resultList)); 
} 
0

あなたはListではなくString []を使用する必要があると言います。しかし、あなたのメソッドでListを内部的に使用したり、配列を返すことはできません。

List<String> searchResult = new ArrayList<String>(); 
    for (?) { 
     String[] resultList = getArray(parameter); 
     searchResult.addAll(Arrays.asList(resultList)); 
    } 
    return searchResult.toArray(new String[searchResult.size()]); 
ここ
0
String[] resultList = getArray(parameter); 
searchResultList[count] = resultList; 

は、resultListは、アレイ..です しかしsearchResultListは[回数]は文字列..です ですから、 "String []型Stringにエラーから変換することはできません。" になっrをより良い uが

String[] resultList = getArray(parameter); 
searchResultList[count] = resultList[count]; 

.. 使用これを使用することができます。あなたはこれがうまくいくかもしれない声明

-1
ArrayList<ArrayList> myDoubleArray = new ArrayList<>(); 

を得ることができます今、私は私が原因要件のリストを使用していない

関連する問題