在Java中在单个数组元素中存储多个对象

在Java中在单个数组元素中存储多个对象,java,arrays,Java,Arrays,是否可以在一个数组元素中存储多个对象?如果可以,最好的方法是什么?否。数组中的任何给定元素都只是一个元素。不过,元素的类型确实很重要 考虑一个整数数组: int[] x = {1, 4, 7, 10}; int[][] x = { {1}, {2, 3}, {4, 5, 6}, {7, 8, 9, 10} }; 一个元素不能“容纳”多个元素 但是现在考虑整数数组: int[] x = {1, 4, 7, 10}; int[][] x = { {1},

是否可以在一个数组元素中存储多个对象?如果可以,最好的方法是什么?

否。数组中的任何给定元素都只是一个元素。不过,元素的类型确实很重要

考虑一个整数数组:

int[] x = {1, 4, 7, 10};
int[][] x = {
    {1},
    {2, 3},
    {4, 5, 6},
    {7, 8, 9, 10}
};
一个元素不能“容纳”多个元素

但是现在考虑整数数组:

int[] x = {1, 4, 7, 10};
int[][] x = {
    {1},
    {2, 3},
    {4, 5, 6},
    {7, 8, 9, 10}
};
每个元素仍然只是一个元素。有四个元素,每种类型为
int[]
。然后,每个元素都有一个元素。理论上,你可以有你想要的任意多个层次。它会很快变得混乱

另一种将“多个元素放入一个元素”的方法是编写自己的类,该类以对您最有用的方式保存多个元素,并生成这些元素的数组


注意:上面,我使用了基本数组来演示。但是,这也适用于Java
List
对象:

ArrayList<Integer> x;  // list of integers

ArrayList<ArrayList<Integer>> x;  // list of ArrayList<Integer> objects, each of which is itself a list of integers

ArrayList<Integer>[] x;  // primitive array of ArrayList<Integer> objects
                         // (I recommend not doing this, it can get confusing)
重新取出这些对象并将它们放入正确的类型是很困难的,所以我不建议这样做


您也可以尝试将列表设置为该类型。

您可以将任何内容存储在
对象[]
对象数组中

大概是这样的:

Object[] objArr = new Object[10];
objArr[0] = "String";
objArr[1] = Arrays.asList(1, 2, 4);
objArr[2] = new ArrayList<>(); 
objArr[3] = 1;
Object[]objArr=新对象[10];
objArr[0]=“字符串”;
objArr[1]=Arrays.asList(1,2,4);
objArr[2]=新的ArrayList();
objArr[3]=1;