2016-05-24 5 views
-1

int array1 [] = {1,2,3,4,5};オブジェクト内にオブジェクトを配置できますか?

int array2 [] = {array1,2,3,4,5};

今、array2内のarray1の最初の要素にアクセスしたいとします。

int temp = array2 [0]。[0];

この問題は何ですか?

+0

'int []'は 'int'と同じではありません。 intの配列( 'int []')には、intと他のint配列は含めることができません。別の 'int []'の中に 'int []'を置くことはできません。 – Gendarme

+0

@Gendarmeそれはタイプミスでした。私は "int array1 []"と言っていました。これを私の目に留めてくれてありがとう。また、あなたが言っていることが分かります。それは私の混乱を解決する。ありがとうございました! –

+2

あなたの 'array2'は' array1'を含んでいますが、それはどちらもintの配列なのでできません。 intの配列にはintのみが含まれ、intの他の配列は含まれません。 – Gendarme

答えて

3

これは動作しますが:それはあなたがあなたが相続のいずれかの種類なしのタイプを混合しているので、ベースオブジェクトタイプを使用する必要が必要なものを達成するために基本的には...ひどいアイデアだ

public class ObjectArray { 

    public static void main(String[] args) { 
     Object[] array1 = {1, 2, 3, 4, 5}; 
     Object[] array2 = {array1, 3, 4, 5}; 
     System.out.println(((Object[])array2[0])[0]); 
    } 

} 

。また、オブジェクトを適切な型にキャストして使用可能にする必要があります。

+0

私は、単一値のものと同期するために多値変数を実装することを考えていました。 例:名前、住所、DOB。 名前は値のセット、つまりFirst _name&Last_Nameになります。 したがって、 My 'String [] Info'には次の文字列が含まれます: Info [0] =名前; 情報[1] =アドレス。 情報[2] = DOB。 しかし、私の名前は持っていたでしょう: 名前[0] = First_Name; 名前[1] = Last_Name; 実際の質問は次のとおりです。 'Info [N]'のN番目のレコードのLast_Nameにアクセスするにはどうすればよいですか? –

+0

@EricFernandesこれはまだひどい考えです。これらをすべて配列に入れるのではなく、 'name'、' address'、 'dateOfBirth'フィールドを持つクラスが必要です。 –

0

@EricFernandesを使用すると、整数の配列に定義

int []a=new int[1]; 

あなたはいつもあなたが使用したい場合は、まだタイプをオブジェクトにそれらをキャスト入力することができますが、あなたの配列が整数型の要素で構成されてコンパイラを語っていますあなたが言っている機能は、可能です。よりクリーンで優れたバージョンはarraylistのarraylistを使用しています(そのようにして、あなたはあなたのアイデアと動的配列を実装することができます)。

ArrayList<ArrayList<Integer>> al=new ArrayList<>(); 
ArrayList<Integer> a=new ArrayList<>(); 
a.add(1); 
a.add(2); 
a.add(3); 
a.add(4); 
a.add(5); 
al.add(a); 
al.add((new ArrayList<Integer>()).add(1)); 
al.add((new ArrayList<Integer>()).add(2)); 
al.add((new ArrayList<Integer>()).add(3)); 
al.add((new ArrayList<Integer>()).add(4)); 
al.add((new ArrayList<Integer>()).add(5)); 
Iterator it=al.iterator(); 
System.out.println(al.get(0).get(0)); 
関連する問題