Итак, вот небольшая проблема, я столкнулся - есть простой способ в Java, чтобы броситьJava - Листинг ArrayList <Object[]> Объекту [] []?
ArrayList<Object[]> array;
в
Object[][] data;
?
Итак, вот небольшая проблема, я столкнулся - есть простой способ в Java, чтобы броситьJava - Листинг ArrayList <Object[]> Объекту [] []?
ArrayList<Object[]> array;
в
Object[][] data;
?
Object[][] data=array.toArray();
Внутренний объект [] рассматривается как тип объекта. Затем они помещаются в свой собственный массив, приводя к массиву объектов массива объектов или просто двумерному массиву.
Кастинг - это не то решение, которое вы ищете. Кастинг по существу позволит вам использовать метод, который вы применяете к определенному типу класса. Пример гипса:
(((ClassA) ClassB) .method())
Таким образом, возвращаемое значение может быть помещено внутрь объекта CLASSA от экземпляра объекта ClassB, который содержит метод().
То, что вы хотите сделать, с другой стороны, - создать многомерный массив или 2D-массив. Это по существу массив массивов, где arrayA [i] = arrayB [];
Например:
Object[] objectArray = new Object[5];
Object[][] = objectArray2D = new Object[][];
objectArray2D[i] = objectArray;
Вот точка на ваш вопрос, хотя, если создать многомерный массив, то почему бы вам кормить его только один экземпляр массива. По существу, что вы создали бы в приведенном выше примере, это массив внутри массива, и поскольку вы будете давать ему только 1, индексирование массива всех объектов внутри массива будет таким же, как если бы у вас был один массив, но с одним дополнительное размещение. Поясню:
objectArray [0] == объект, расположенный на первом слоте objectArray
в то время как objectArray2D [0] [0] == точно такой же объект, как объект в objectArray [0]
Вы не получаете никаких преимуществ, используя многомерный массив для одного массива. Если бы вы спросили 2D-массив для индекса [1] [0], вы получили бы исключение за пределы.
Наконец, я бы предложил создать конкретную форму массива, такую как int [] или string []. Проблема с массивом Object [] заключается в том, что вы можете хранить что-либо, что считается объектом в массиве, что позволяет использовать потенциальный кластер из разных типов объектов внутри одного массива. Например, у вас может быть objectArray [0] = int 1; и objectArray [1] = String one; Если вы не хотите быть очень конкретным в использовании массива, возможно, лучше использовать один тип объекта в качестве массива.
В любом случае окончательное решение сделать именно то, что вы хотели сделать это следующим образом:
ArrayList<Object[]> array;
Object[][] data;
public void changeToAnArray(ArrayList<Object[]> array, Object[][] data)
{
this.array = array.toArray();
this.data[0] = array;
}
Также к сведению точку в ArrayList, чтобы иметь 2D массив в сущности без необходимости проанализировать индексы.
Пожалуйста, не стесняйтесь исправить детали, которые я ошибаюсь < < все еще учится.
'array.toArray()'. –
Почему вы назвали «массив» списка? – Bohemian
@Bohemian Он подходит к соглашениям об именах и представляет собой * массив * Список в любом случае. – hexafraction