Какая польза от ArrayList - PullRequest
       0

Какая польза от ArrayList

1 голос
/ 13 октября 2011

Можете ли вы привести какой-либо разумный пример для ArrayList<ArrayList<E>>, такой как объявление, инициализация, добавление элементов и их итерация. Это один из способов получить поведение двумерного массива в Java?

Ответы [ 3 ]

6 голосов
/ 13 октября 2011

Да, ArrayList<ArrayList<E>> аналогичен двумерному массиву E (E[][]). Он имеет все общие различия между использованием List и использованием массивов в Java (List - это высокоуровневый API, поддерживает изменение размера, добавление элементов в произвольных позициях, ...).

Вы не относитесь к этому как к обычному List, за исключением того, что элементы, которые он содержит, на самом деле являются List объектами:

  • Инициализировать его:

    ArrayList<ArrayList<E>> listOfLists = new ArrayList<ArrayList<E>>();
    
  • Итерация по нему:

    for (ArrayList<E> innerList : listOfLists) {
      doSomethingWithInnerList(innerList);
    }
    
  • Добавить к этому:

    ArrayList<E> newInnerList = new ArrayList<E>();
    // add stuff to newInnerList
    listOfLists.add(newInnerList);
    
1 голос
/ 13 октября 2011

Единственное, что я хочу добавить к ответу Йоахима Сауэра, это то, что да, ArrayList<ArrayList<E>> может быть похожим на двумерный массив E (E[][]) с одним дополнительным поворотом (вВ дополнение ко всем обычным различиям между одномерными массивами и списками):

Используя список списков, вы можете сделать эквивалент «зубчатого» массива.Не все внутренние списки должны иметь одинаковый size(), тогда как в двумерном массиве все «строки» E[][] по определению имеют одинаковую длину.Это "прямоугольник".Список списков не должен быть прямоугольным;это может быть зубчатым.

0 голосов
/ 13 октября 2011

ArrayList используется для хранения массива объектов.С другой стороны, он может иметь повторяющиеся значения.когда вам нужна быстрая вставка / удаление, вы можете использовать его.он хранит значения в том же порядке, в котором он был введен в него.Например

List<String> ls= new ArrayList<String>();
ls.add("foo");
ls.add("bar");
for(String val:ls){
    System.out.println("Value :" + val);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...