2016-04-10 8 views
-1

Ich mache eine Implementierung der ArrayList-Klasse von Grund auf, nur mit Object [] und den Standardfunktionen. Ich versuche, eine "Größe" -Methode zu machen, die ein int zurückgibt, das die Größe des Array Object [] ist.Wie testet man in Java, ob ein Index außerhalb des Bereichs von Objekten (Object []) liegt?

public class MyArraryList{ 
Object[] Objects = new Object[0]; 

public int sizeOf(Object[] o) 
{ 
    int i = 1; 
    while(i > 0) 
    { 
     if() 
    } 
} 

Dies ist, was ich bisher habe. In der if-Anweisung möchte ich im Wesentlichen prüfen, ob ein Fehler in den Zeilen "index out of range of array" vorliegt. Ich bin mir nicht sicher, was die Syntax dafür ist. Kann mir jemand erklären, wie man das macht? Vielen Dank!

+0

@Jared Die andere Frage war, wie man die Anzahl der Stellen in einem 'int' findet. –

Antwort

1

Sie die Länge eines Arrays finden

objects.length 

Verwendung Es wäre möglich, eine Version von ArrayList zu schreiben, wobei die Länge des Arrays der Größe der Liste immer gleich ist. In diesem Fall wäre die Größenmethode einfach

public int size() { 
    return objects.length; 
} 

Eine solche Liste wäre sehr langsam. Da Arrays eine feste Länge haben, müssten Sie bei jedem Hinzufügen oder Entfernen ein neues Array erstellen, damit dies funktioniert.

ArrayList funktioniert nicht so. Ein ArrayList hat 2 Felder; ein Object[] und ein int genannt size. Der Punkt ist, dass die Länge des Arrays oft höher ist als die Größe der Liste, weil am Ende des Arrays ungenutzte Slots vorhanden sind. Wenn Sie es auf diese Weise die size Methode tun, ist nur

public int size() { 
    return size; 
} 

Die nützlichste, was Sie tun können, für ArrayList den Quellcode lesen, um zu sehen, wie es funktioniert.

Ich möchte im Wesentlichen überprüfen, ob ein Fehler entlang der Linien gibt es „Index außerhalb des Bereichs von Array“

Sie können wie dies die Länge eines Arrays finden:

int length = 0; 
try { 
    while (true) { 
     Object o = objects[length]; 
     length++; 
    } 
} catch (ArrayIndexOutOfBoundsException e) { 
    // ignore 
} 

Allerdings sollten Sie keine Ausnahmen auf diese Weise verwenden. Sie sollten für wirklich außergewöhnliche Situationen reserviert sein.

Verwandte Themen