Ile danych może pomieścić maksymalnie lista?

Ile danych można dodać w Javie.util.Lista w Javie na maksimum?

Czy istnieje jakiś domyślny rozmiar ArrayList?

Author: Tot Zam, 2010-09-22

8 answers

Zależy to od implementacji List. Ponieważ indeksujesz tablice za pomocą int s, {[2] }nie może zawierać więcej niż Integer.MAX_VALUE elementów. A LinkedList nie jest ograniczony w ten sam sposób i może zawierać dowolną ilość elementów.

 45
Author: gustafc,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-09-22 09:49:46

Zależy to od implementacji, ale limit nie jest zdefiniowany przez interfejs List.

Interfejs definiuje jednak metodę size(), która zwraca int.

Zwraca liczbę elementów z tej listy. Jeśli lista zawiera więcej niż Integer.MAX_VALUE elementów, zwraca Integer.MAX_VALUE.

Więc, bez limitu, ale po osiągnięciu Integer.MAX_VALUE, zachowanie listy zmienia się trochę

ArrayList (który jest oznaczony) jest wspierany przez tablicę i jest ograniczony do wielkość tablicy-tzn. Integer.MAX_VALUE

 20
Author: Bozho,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-09-22 09:53:43

ile danych można dodać w Javie.util.Lista w Javie na maksimum?

Jest to bardzo podobne do teoretycznego limitu liczby kluczy (obiektów), które mogą być przechowywane w Hashmapie?

Dokumentacja java.util.List nie dokumentuje jednoznacznie limitu maksymalnej liczby elementów. Dokumentacja List.toArray jednak stwierdza, że ...

Zwraca tablicę zawierającą wszystkie elementów w tym lista w odpowiedniej kolejności (od pierwszego do ostatniego elementu); miałyby problemy z wiernym wdrażaniem pewnych metod, takich jak

... tak ściśle mówiąc, nie byłoby możliwe wierne wdrożenie tej metody, gdyby lista miała więcej niż 231-1 = 2147483647 elementów, ponieważ jest to największa możliwa tablica.

Niektórzy twierdzą, że dokumentacja size()...

Zwraca liczbę elementów z tej listy. Jeśli lista ta zawiera więcej niż Integer.MAX_VALUE elements, returns Integer.MAX_VALUE.

...wskazuje, że nie ma górnej granicy, ale Widok ten prowadzi do licznych niespójności. Zobacz ten raport o błędzie .

czy istnieje jakiś domyślny rozmiar listy tablic?

Jeśli odnosisz się do ArrayList to powiedziałbym, że domyślny rozmiar to 0. Domyślna Pojemność (liczba elementów, które można wstawić, bez zmuszania listy do realokacji pamięci) to 10. Zobacz dokumentację konstruktor domyślny .

Limit rozmiaru ArrayList wynosi Integer.MAX_VALUE, ponieważ jest wspierany przez zwykłą tablicę.

 10
Author: aioobe,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-23 10:31:14

java.util.List jest interfejsem. To, ile danych może pomieścić lista, zależy od konkretnej implementacji listy, której chcesz użyć.

Ogólnie, implementacja listy może zawierać dowolną liczbę elementów (jeśli używasz listy zindeksowanej, może być ograniczona do Integer.MAX_VALUE lub Long.MAX_VALUE). Dopóki nie zabraknie Ci pamięci, lista nie stanie się" pełna " czy coś.

 9
Author: Gerco Dries,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-09-22 09:40:34

Na tyle, na ile pozwoli Twoja dostępna pamięć. Nie ma limitu wielkości poza stertą.

 5
Author: duffymo,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-09-22 09:40:25

Interfejs definiuje jednak metodę size (), która zwraca int.

Returns the number of elements in this list. If this list contains more than Integer.MAX_VALUE elements, returns Integer.MAX_VALUE.

Więc, bez limitu, ale po osiągnięciu liczby całkowitej.MAX_VALUE, zachowanie listy zmienia się nieco

ArrayList (która jest oznaczona) jest wspierana przez tablicę i jest ograniczona do rozmiaru tablicy - tj. liczby całkowitej.MAX_VALUE

 2
Author: user3193782,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-01-23 11:20:16

Zobacz poniższy kod arraylist domyślnie jest to 10, gdy tworzysz List l = new ArrayList ();

   public class ArrayList<E> extends AbstractList<E> implements List<E>,
           Cloneable, Serializable, RandomAccess {

          private static final long serialVersionUID = 8683452581122892189L;

          private transient int firstIndex;

          private transient int lastIndex;

          private transient E[] array;

          /**
           * Constructs a new instance of {@code ArrayList} with ten capacity.
           */
          public ArrayList() {
              this(10);
          }
 0
Author: Dead Programmer,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-09-22 11:28:12

Numeracja elementów w tablicy java powinna zaczynać się od zera. Myślę, że możemy mieć dostęp do Integer.MAX_VALUE+1 szt.

 0
Author: Oleksy Ostanin,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-07-16 09:27:37