你能在对象中有一个对象吗?

时间:2016-05-24 16:56:02

标签: java

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

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

现在,我想访问array2中array1的第一个元素。

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

这有什么问题?

2 个答案:

答案 0 :(得分: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]);
    }

}

这是一个可怕的想法......基本上要完成你需要的东西你必须使用基础对象类型,因为你没有任何类型的继承混合类型。并且您必须将对象强制转换为适当的类型以使其可用。

答案 1 :(得分:0)

@EricFernandes定义整数数组时

int []a=new int[1];

您告诉编译器您的数组由整数类型元素组成,尽管您始终可以将它们类型转换为对象类型,但如果您想使用您所说的功能,则可能;虽然更清洁和更好的版本将使用arraylists的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));