@k5hu Ответов: 1

Значение аргумента arraylist в java


<pre>List<Integer> l=new ArrayList<>();
       l.add(1);
       l.add(2);
       l.add(3);
       l.add(4);
       System.out.println("Element at 0th index: "+l.get(0));
       Iterator i=l.iterator();
        while(i.hasNext())
        {
            Integer obj=(Integer)(i.next());
            int o=obj;
            System.out.println(o);
        }


выход:
Element at 0th index: 1
1
2
3
4


Что я уже пробовал:

<pre lang="java"><pre>List<Integer> l=new ArrayList<>();

При изменении приведенной выше строки на следующую
<pre><pre lang="java"><pre>List<Integer> l=new ArrayList<>(2);

получается тот же результат. Может ли кто-нибудь объяснить использование аргумента, переданного в ArrayList как ArrayList(2) ?

1 Ответов

Рейтинг:
0

OriginalGriff

Это начальная емкость ArrayList: ArrayList (Java Platform SE 7 )[^] - если он не указан, то он начинается с емкости 10. Когда вы указываете его как 2, он выделяет только два элемента для начала.

Это для эффективности - если вы знаете, сколько элементов вы собираетесь использовать, то вы можете начать с этого как емкость и сохранить постоянное перераспределение, пока не достигнете его.
Видеть здесь: List<T> - действительно ли это так эффективно, как вы, вероятно, думаете?[^] - он основан на C#, но Java ArrrayList делает точно то же самое, по тем же причинам.