Was ist der Unterschied zwischen Array Size und Array Lenght?
Hi, kennt einer den Unterschied zwischen size und lenght bei Java? (In Bezug auf Array) Weiß jemand auch zufällig warum beim Quellcode (siehe unten) A.swap (i, i+1) und nicht A.swap (i, i-1), denn es sollte doch nach rechts geschoben werden und nicht nach links oder?
for (n=A.size; n>1; n--){ ( A= Array) for (i=0; i<n-1; i++){ if (A[i] > A[i+1]){ A.swap(i, i+1) } // ende if } // ende innere for-Schleife } // ende äußere for-Schleife
- Der Quellcode verdeutlicht den Bubblesort (Sortieralgorithmus in Java) Danke im Voraus
3 Antworten
Du hast Bild und Quellcode vergessen.
Eine Array, Beispielweise so deklariert (und initialisiert):
String[] myValues = new String[5];
hat ausschließlich die (Integer-)Eigenschaft: length
int arraySize = myValues.length;
Beim Initialisieren einer Array wird immer eine feste Größe angegeben, wie hier die 5. - Dieser Wert kann über length abgefragt werden.
In einer Array gibt es weder eine Eigenschaft noch eine Methode, welche size heißt. Daher gäbe es die Annahme, dass du eine Ableitung von Collection meinen könntest, wie z.B.: ArrayList.
Bei Ableitungen von Collection gibt es tatsächlich eine size() Methode. Diese gibt jedoch die Anzahl der darin befindlichen Elemente zurück.
Dieser Code-Snippet :
for (n=A.size; n>1; n--){
lässt darauf schließen, dass es sich bei "A" um eine eigene Klasse handelt. Denn
sizewird hier als
Eigenschaftund nicht als
Methodeabgefragt. - Genauso hat weder eine Ableitung von Collection eine
SwapMethode noch die Array.
Und in diesem Snippet wird A als Array verwendet:
if (A[i] > A[i+1]){
Was darauf schließen lässt, dass sich der Code erst gar nicht kompilieren lässt.
Array und ArrayList sind zwei unterschiedliche Dinge.
Eine Array ist einfach ausgedrückt nur eine 'Liste' mit sehr geringem Funktionsumfang.
String[] myArray = new String[2];
Eine ArrayList wiederum ist eine eigene Klasse, die wiederum Methoden zur Verfügung stellt.
ArrayList<String> myArrayList = new ArrayList<>();
Java Arrays haben keine size() Methode, eine size() Methode hat z.B. eine Liste
ein Array hat die Eigenschaft length, die die Anzahl an Elementen darstellt... das ist jedoch keine Methode(!) (siehe auch http://stackoverflow.com/questions/20192843/difference-between-size-and-length-methods ... erste Antwort)
ein Array hat auch keine Methode swap.. keine Ahnung woher du die hast^^
Hi, danke! Weißt du wie man den Quellcode umschreiben muss, damit er richtig ist? :)
Hi, danke! hab zwar nicht alles verstanden... Also gibt es Array.sozr nut bei Array List :) Danke