2016-05-24 2 views
-1

int array1 [] = {1,2,3,4,5};У вас есть объект внутри объекта?

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

Теперь я хочу получить доступ к 1-му элементу array1 внутри array2.

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

Что случилось с этим?

+0

'int []' не то же самое, что 'int'. Массив ints ('int []') может содержать только ints и * not * другие массивы int. Вы не можете использовать 'int []' внутри другого 'int []'. – Gendarme

+0

@Gendarme Это была опечатка. Я хотел сказать «int array1 []». Спасибо, что привлек это к моему вниманию. Кроме того, я вижу, что вы говорите. Это решает мою путаницу. Спасибо! –

+2

Ваш 'array2' содержит' array1', что невозможно, так как они оба являются массивами int. Массив ints может содержать только ints, а не другие массивы 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

Я думал о внедрении многозначных переменных для синхронизации с однозначными. Например: имя, адрес, ДОБ. Название будет представлять собой набор значений, то есть First _name & Last_Name. Итак, My 'String [] Info' будет содержать: Info [0] = Имя; Инфо [1] = Адрес; Информация [2] = DOB; Но тогда мое имя имело бы: Имя [0] = Имя_начала; Название [1] = Last_Name; Теперь, реальный вопрос: Как мне получить доступ к Last_Name из N-й записи в разделе «Информация [N]»? –

+0

@ Эрик Фернандес, это по-прежнему ужасная идея. У вас должен быть класс с полями 'name',' address' и 'dateOfBirth' вместо того, чтобы перетаскивать все это в массивы. –

0

@EricFernandes При определении целочисленного массива

int []a=new int[1]; 

вы сообщаете компилятор, что ваш массив состоит из элементов целого типа, хотя вы всегда можете ввести повергли их на объект типа, но все же, если вы хотите использовать функциональность, о которой вы говорите, возможно; хотя более чистая и лучшая версия будет использовать arraylist arraylists (таким образом, вы сможете реализовать свою идею, а также динамический массив).

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)); 
Смежные вопросы