Гипотетически у меня есть 5 объектов строкового массива:
String[] array1 = new String[];
String[] array2 = new String[];
String[] array3 = new String[];
String[] array4 = new String[];
String[] array5 = new String[];
и я хочу, чтобы другой объект массива содержал эти 5 объектов строкового массива. Как мне это сделать? Могу я положить его в другой массив?
Ответы:
Как это:
или
(Последний синтаксис может использоваться в назначениях, отличных от места объявления переменной, тогда как более короткий синтаксис работает только с объявлениями.)
источник
new String[10][]
?пытаться
источник
arrays[0] = new String[] {"a", "b", "c"}
или использовать временный список: <pre> <code> List <String []> myList = new ArrayList <> (); myList.add (new String [] {"a", "b", "c"}); myList.add (new String [] {"d", "e", "f"}); myList.toArray (массивы); </code> </pre>Хотя есть два отличных ответа, рассказывающих вам, как это сделать, я чувствую, что отсутствует другой ответ: в большинстве случаев вам вообще не следует этого делать.
Массивы громоздкие, в большинстве случаев лучше использовать Collection API .
С помощью Коллекций вы можете добавлять и удалять элементы, и существуют специализированные Коллекции для различных функций (поиск на основе индекса, сортировка, уникальность, FIFO-доступ, параллелизм и т. Д.).
Хотя, конечно, хорошо и важно знать о массивах и их использовании, в большинстве случаев использование коллекций делает API-интерфейсы намного более управляемыми (вот почему новые библиотеки, такие как Google Guava, почти не используют массивы).
Итак, для вашего сценария я бы предпочел список списков, и я бы создал его с помощью Guava:
источник
есть класс, который я упомянул в комментарии к Шону Патрику Флойду: я сделал это со специфическим использованием, которое требует WeakReference, но вы можете легко изменить его любым объектом.
Надеюсь, это когда-нибудь поможет кому-то :)
Пример использования:
источник