Java 你能在一个物体中有一个物体吗?

Java 你能在一个物体中有一个物体吗?,java,Java,int array1[]={1,2,3,4,5} int array2[]={array1,2,3,4,5} 现在,我想访问array2中array1的第一个元素 int temp=array2[0].[0] 这有什么问题吗?虽然这样可以: public class ObjectArray { public static void main(String[] args) { Object[] array1 = {1, 2, 3, 4, 5}; Objec

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

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

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

int temp=array2[0].[0]

这有什么问题吗?

虽然这样可以:

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]);
    }

}

这是个糟糕的主意。。。基本上,为了完成您需要的任务,您必须使用基本对象类型,因为您在混合类型时没有任何类型的继承。您必须将对象强制转换为适当的类型以使其可用。

@ericsfernandes当您定义整数数组时

int []a=new int[1];
你告诉编译器你的数组由整数类型的元素组成,虽然你总是可以将它们类型转换成对象类型,但是如果你想使用你所说的功能,这是可能的;虽然一个更干净更好的版本会使用arraylist of arraylist(这样你就可以实现你的想法和动态数组)

ArrayList al=new ArrayList();
ArrayList a=新的ArrayList();
a、 增加(1);
a、 增加(2);
a、 增加(3);
a、 增加(4);
a、 增加(5);
al.添加(a);
al.add((新的ArrayList()).add(1));
al.add((newarraylist()).add(2));
al.add((newarraylist()).add(3));
al.add((新的ArrayList()).add(4));
al.add((newarraylist()).add(5));
迭代器it=al.Iterator();
System.out.println(al.get(0).get(0));

int[]
int
不是一回事。整数数组(
int[]
)只能包含整数,不能包含其他整数数组。你不能在另一个
int[]
内部有
int[]
@Gendarme,这是一个打字错误。我的意思是说“intarray1[]”。谢谢你提醒我这件事。还有,我明白你的意思了。这就解决了我的困惑。非常感谢。您的
array2
包含
array1
,这是不可能的,因为它们都是int数组。整数数组只能包含整数,不能包含其他整数数组。我正在考虑实现多值变量以与单值变量同步。例如:姓名、地址、出生日期。Name是一组值,即First\u Name和Last\u Name。因此,我的'String[]Info'将包含:Info[0]=Name;信息[1]=地址;信息[2]=DOB;但是,我的名字应该是:Name[0]=First_Name;姓名[1]=姓氏;现在,真正的问题是:如何访问“Info[N]”中第N条记录的姓氏?@EricFernandes这仍然是个糟糕的主意。您应该有一个包含
名称
地址
出生日期
字段的类,而不是将所有这些字段都放入数组中。
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));