2016-12-03 5 views
-2
import java.util.ArrayList; 
public class test 
{ 
     public static void main(String[] args) 
     { 
      ArrayList<Integer> numo = new ArrayList<Integer>(); 

      for(int i=0;i<numo.size() ;i++) 
      { 

       numo.add(i); 
      } 

      for(int i=0;i<numo.size() ;i++) 
      { 

      System.out.println(nuenter code heremo.get(i)); 
      } 

     }  
} 

der Code funktioniert, aber es hat nichts gedruckt, wenn ich es laufen. Ich möchte alle Ganzzahlen in der Arraylist drucken. Ich bin neu in Java, also bitte nicht nur mich abmelden, wenn Sie denken, die Frage ist "dumm". DankWarum druckt mein folgendes Programm keine Ausgabe (ArrayList)?

+0

in der ersten Schleife für Ihre numo.size() == 0, so gibt es in der Numo –

+0

Anfangsgröße Numo kein Element hinzugefügt ist 0 daher die erste Schleife wird nie ausgeführt, also nichts hinzugefügt – ScanQR

+0

Ich habe es! Vielen Dank – SJK

Antwort

0

können Sie tryto einige Werte auf Ihre numo Liste hinzufügen und dann Schleife über zu drucken, diese Werte

import java.util.ArrayList; 
public class test 
{ 
     public static void main(String[] args) 
     { 
      ArrayList<Integer> numo = new ArrayList<Integer>(); 

      for(int i=0;i<10 ;i++) 
      { 
       // add some values to numo array list 
       numo.add(i); 
      } 

      for(int i=0;i<numo.size() ;i++) 
      { 
      //print those values 
      System.out.println(nuenter code heremo.get(i)); 
      } 

     }  
} 
+0

Können Sie mir bitte meine Frage stellen? Ich bin ein neuer Benutzer und ich möchte, dass einige Punkte mehrere Fragen stellen können. Danke :) – SJK

-1

Ihre Numo Liste ist leer. Versuchen Sie, einige Werte

0

Ihre list Größe Null ist zunächst, so dass Sie nicht in der Lage sind die list und iterieren alles drucken.

Auch versuchen Sie nicht zu wiederholen und Elemente in die gleiche Liste hinzuzufügen (ohne ordnungsgemäßen Zustand der Schleife zu beenden), die Endlosschleife erzeugen,

So Elemente zur Liste hinzuzufügen ersten und iterieren es dann wie folgt:

ArrayList<Integer> numo = new ArrayList<>(); 
numo.add(1); 
numo.add(2); 
for(int i=0;i<numo.size() ;i++) { 
    System.out.println(numo.get(i)); 
} 
+0

downvoters, bitte sagen was ist das Problem mit der obigen Antwort? – developer

+0

Danke, ich wollte eine for-Schleife haben, um Daten in die ArrayList – SJK

+0

in Ordnung, aber stellen Sie sicher, dass Sie die Schleife mit bestimmten Wert (Größe) – developer

0

Wenn wir eine ArrayList die Größe der Array-Liste initialisieren würde zunächst 0 sein. Deshalb ist der Code

for(int i=0;i<numo.size() ;i++) { 
    numo.add(i); 
} 

, wenn sie mit numo.size() druckt nichts laufen.

ARRAY LIST JAVA

1. Was ist eine Arraylist?

Die Array-Liste enthält einen Array-Puffer, in dem die Elemente der ArrayList gespeichert sind. Die Kapazität der ArrayList ist die Länge dieses Array-Puffers.

2. Was passiert, wenn ich während der Array-Liste intializtion jede Größe nicht bieten?

Jede leere ArrayList wird um DEFAULT_CAPACITY erweitert, wenn das erste Element hinzugefügt wird.

DEFAULT_CAPACITY value of an array list is 10 

3.What geschieht während der folgenden intialization?

ArrayList<Integer> numo = new ArrayList<Integer>(); 

Dies würde Array-Liste Konstruktor aufrufen, die wie

private static final Object[] EMPTY_ELEMENTDATA = {}; 

/** 
* This would construct an empty list with an initial capacity of ten. 
*/ 
public ArrayList() { 
    super(); 
    this.elementData = EMPTY_ELEMENTDATA; 
} 

3.How meine Werte eingefügt werden in Array-Liste sein würde?

i] Diese prüft, ob Kapazität der internen Array und fügt das Element in dem Array Puffer innerhalb dieser Gruppe.

/* 
Appends the specified element to the end of this list 
e - element to be appended to this list 
returns - true if element is added successfully - false otherwise 
*/ 
public boolean add(E e) { 
    ensureCapacityInternal(size + 1); //Increments modCount!! 
    elementData[size++] = e; 
    return true; 
} 

4.Wie wird die Array-Kapazität (Array hier bezieht sich auf das Objekt-Array innerhalb der Array-Liste) intern erhöht?

i] Ensuriy Kapazität

private void ensureCapacityInternal(int minCapacity) { 
    if (elementData == EMPTY_ELEMENTDATA) { 
     minCapacity = Math.max(DEFAULT_CAPACITY, minCapacity); 
    } 

    ensureExplicitCapacity(minCapacity); 
} 

private void ensureExplicitCapacity(int minCapacity) { 
    modCount++; 

    // overflow-conscious code 
    if (minCapacity - elementData.length > 0) 
     grow(minCapacity); 
} 

ii] Wenn die Kapazität des Arrays nicht genug ist, das neue Element zu halten, - dann die Größe des Arrays aufgewachsen wird.

/** 
* Increases the capacity to ensure that it can hold at least the 
* number of elements specified by the minimum capacity argument. 
* 
* @param minCapacity the desired minimum capacity 
*/ 
private void grow(int minCapacity) { 
    // overflow-conscious code 
    int oldCapacity = elementData.length; 
    int newCapacity = oldCapacity + (oldCapacity >> 1); 
    if (newCapacity - minCapacity < 0) 
     newCapacity = minCapacity; 
    if (newCapacity - MAX_ARRAY_SIZE > 0) 
     newCapacity = hugeCapacity(minCapacity); 
    // minCapacity is usually close to size, so this is a win: 
    elementData = Arrays.copyOf(elementData, newCapacity); 
} 

5. Ist mein Arraylist Überlauf bewusst?

Ja

6. Wann wird ein Arraylist OutOfMemoryError() wirft?

Wenn die angeforderte Feldgröße überschreitet VM Grenze

7. Was ist die maximale Größe einer Arraylist?

Die maximale Größe des zuzuweisenden Arrays ist (Integer.MAX_VALUE - 8) dh; (2^31 - 9)

  • Einige VMs reservieren einige Headerwörter in einem Array. Versuche, größere Arrays zuzuweisen, können zu OutOfMemoryError führen: Die angeforderte Array-Größe überschreitet das VM-Limit.

Hier ist der Quellcode von ArrayList.java

Verwandte Themen