2016-12-16 9 views
-1

私はObject[]からObject[cap]までの変数 "テーブル"をインスタンス化するクラスをHashMapとしました。ここでcapはテストで10です。 ArrayListが動作するためにはどのように配列要素をArrayListにするのですか?

public void put(K key, V value){ 
    HashEntry<K, V> newEntry = new HashEntry<K, V>(key, value); 
    location = Math.abs(key.hashCode()) % capacity; 
    //System.out.println(location); 

    if(table[location] == null){ 
     table[location] = new ArrayList<HashEntry<K, V>>(); 
     table[location] = newEntry; 
     numItems++; 
    } 
    else { 
     table[location] = newEntry; 
    } 
} 

、私はtable[location].add(newEntry)、ないtable[location] = newEntryを使用する必要があります。私はHashMapクラスで、次のputメソッドを持っています。しかし、私が前者を使用した場合、メッセージ「Objectのメソッドadd(HashEntry<K,V>)は未定義です。」が表示されます。私が後者を使うと、情報を取得するための ""がないので、私はもちろん正しい出力を得ることができません。 2D arraysが一切得られないので、私はArrayListを2次元配列に使うのが好きです!何百万ものものを試してみると、一生懸命に円を描いているので、助けてください。直接ArrayListに配列の要素を割り当てる

+0

ここで/ howは 'table'を定義していますか? – Mritunjay

+0

テーブルをリストの配列として宣言しようとしましたか? "List []テーブルのように"; – paep3nguin

+0

オブジェクト[]テーブル。コンストラクタでは、table = new Object [cap]; – vegasbrent

答えて

-1

一つの方法である:

String array[]={"Abc","Def"}; 
List<String> list=Arrays.asList(array); 

第二の方法は、としてArrayListに割り当てる次にforループを介して配列要素をループであり、そして:

for(int i=0;i<array.length'i++) 
{ 
    list.add(arr[i]); 
} 
0
if(table[location] == null){ 
    table[location] = new ArrayList<HashEntry<K, V>>(); 
    table[location] = newEntry; 
    numItems++; 
} 
else { 
    table[location] = newEntry; 
} 

これは間違っています。それでなければなりません:あなたが欲しい(および必要に応じてそれを初期化)バケツが見つかったら

if(table[location] == null){ 
    table[location] = new ArrayList<HashEntry<K, V>>(); 
} 
table[location].add(newEntry); 

テーブルはArrayList<HashEntry<K,V>>への参照の配列である、あなたはArrayListに新しいエントリを追加します。

+0

私はあなたの要点を確かに見て、コードを変更しました。ありがとう!しかし、私はまだエラーメッセージの難しい問題が残っています。 "メソッド' add(HashEntry ) 'は、タイプObjectに対して未定義です。" – vegasbrent

関連する問題