2016-04-14 11 views
-1

私は、リニアとバイナリの両方の検索方法を使用するプログラムで作業しています。私はコーディングに新しいですが、私はこの状況で私が間違って何をしているのか分かりません。.toArrayを使用しているときに識別子が見つからない

ArrayList <Books> list = new ArrayList <Books>(); 

Books[] bookslist = new Books[list.size()]; 
list.toArray(bookslist); 

問題は、3行目にある:ここで私は(あなたが詳細を参照する必要がある場合、私に教えてください)のrelaventされるべきだと思うのコードです。私は同じパターンのコードを使用する多くの同様の例を見てきましたが、私のものは動作していないようです。それは、識別子と識別子が必要であると私に伝えます。

私はこのことについてかなり新しいので、この問題をどのように修正できるかについてのご意見やご感想をお寄せいただきありがとうございます。しかし、私はうまく理解することができますので、これを(または少なくとも簡単に説明した)単純なままにしてください!

ありがとうございました!

+0

使用しているプログラミング言語としてタグを追加してください –

+0

OPでJavaを使用していない限り、上記の動作をJavaで確認できます(これはこのように見えます)。 "Books"もコレクションでない限り、慣用的に単数名詞に複数の名前を付けるべきではありません...FYI – echen

+0

と同じようにNetBeansでJavaを使用しています。おそらく私はすべてのコードを投稿するべきです。おそらく助けてくれるだろうか? – Natecurt3030

答えて

0

これは、使用したArrayListクラスのtoArray()メソッドの宣言です。

public<T> T[] toArray(T[] a) 

これは、このメソッドはあなたが示すように、すなわちbookslist

は、3行目の変更を行い、通過した変数に格納ブックス配列を返すとしません呼び出し、あなたのケースでは意味以下のメソッドは配列を返し、あなたは

ArrayList <Books> list = new ArrayList <Books>(); 
Books[] bookslist = new Books[list.size()]; 
bookslist = list.toArray(bookslist); 
(変数 bookslistで、あなたのケースで)どこかに保存する必要があるので、

しかし、ArrayListのもう一つのオーバーロードされたtoArrayメソッドがあります。宣言は以下の通りです。

public Object[] toArray() 

あなたがlist.toArray()を呼び出す場合、これは意味し、それはタイプブックス[]

のオブジェクトを返します。次の2つ、それは使い方だとの違い何、求めることができます。さて、パラメータ化されたバージョンでは、コードをより詳細に制御できます。

たとえば、

あなたは

ArrayList<Integer> intList = new ArrayList<Integer>(); 

を持っている場合は、私が管理し、あなたがintList.toArray()を呼び出した場合、それは整数[] を返します。しかし、あなたはintList.toArray(new Long[intList.size]())を呼び出す場合、それはロング[]

+0

コードを使用しています:シンボルbookslistを見つけることができません。また、依然として識別子の問題です。私は間違ったことをしましたか?また、私はbooklist(あなたが書いたように)とbookslist(私はあなたが意味するものだと思います)の両方を試しました。 – Natecurt3030

+0

bookslist変数は、toArray()メソッドを呼び出す場所と同じスコープで宣言されていますか?たぶんあなたはいくつかのループでbookslistを宣言しているか、ループの外側でtoArrayメソッドをブロックして呼び出している場合 –

+0

正直言って、bookslist変数の唯一の言及は、私が共有したコードです。多分、コードの完全な一見は私ができるよりもうまく起こっていることを説明することができます。コードのペーストビンは次のとおりです:http://pastebin.com/AaNXCw7A – Natecurt3030

0

を返します。私の問題を解決する。私は単に次の行をfindButtonメソッドに移動しました。

Books[] bookslist = new Books[list.size()]; 
    list.toArray(bookslist); 

    int referenceNum = Integer.parseInt(inputField.getText()); 

list.toArray(bookslist);メソッドの外部では機能しません。これは私の問題を完全に解決しました。助けてくれてありがとう!

関連する問題