Array Liste füllen

Sophie

Bekanntes Mitglied
Hallo Zusammen

Ich habe ein Riesenproblem mit Array-Listen. Ich versuche gerade eine Aufgabe zu lösen, scheitere jedoch schon am füllen der Array Liste bzw. bei der Ausgabe auf der Konsole.
(Die Ausgabe auf der Konsole gehört nicht mit zur Aufgabe aber ich wollte ein bisschen ausprobieren deshalb soll jetzt erstmal gar nicht mit der Methode vergroessern() gearbeitet werden.)
Könnt Ihr mir vielleicht weiterhelfen mit dem füllen der Array-Liste und den ausgeben auf der Konsole?

Also ich habe nachgelesen, dass man eine Array-Liste nur mittels einer Schleife auf der Konsole ausgeben kann.
Eclipse meckert nun aber bei dieser Zeile:

Java:
for (int i : ms)

"Cannot iterate over an array or an instance of java.lang.Iterable"

Gruss
Sophie

Hier ist mein Quellcode
Java:
import java.util.*;

/*
 * 
 */
	public class MeineArrayList<E> {

	    private E[] list;
	    private int size;
	    private int capacity;
	    private int  increment;

	// with initial capacity c
	    public MeineArrayList(int c, int inc) {
	        capacity = c;
	        list = (E[]) new Object[c];
	        size = 0;
	        increment = inc;
	    }
	    	
	    public void add (E o){
	    	if (size>=capacity){
	    		vergroessern();
	    	}
	    	list[size]= o;
	    	size++;
	    }
	    private void vergroessern(){
	    	E[]list1 = java.util.Arrays.copyOf(list, increment + capacity); //2. Array wird erzeugt
	    	capacity = increment + capacity;
	    	list = list1;
	    }
}

Java:
public class MeineArrayListTest<E> {
 
	public static void main(String[] args) {
		
	MeineArrayList<String> ms = new MeineArrayList<String>(5,1);
	
	
    ms.add( new String ("a") );
    
        for (int i : ms) {
    	  System.out.println(ms);
    	}
	}
}
 

Haave

Top Contributor
Deine Klasse MeineArrayList erbt nicht von java.util.ArrayList. Das an sich ist nicht das Problem, aber wenn sie nicht erbt, musst du selbst dafür sorgen, dass du das Interface Iterable (das z.B. von einer java.util.ArrayList implementiert wird), implementierst.

Iterable (Java Platform SE 6)
 
M

Marcinek

Gast
Ich muss ein wenig korrigieren:

Die Lösung liegt in erster Line nicht dadrin von einer Klasse zu erben, die bereits Iterable implementiert, sondern direkt das Interface zu implementieren.

In ArrayList wird Iterable über den internen Array gebogen. Deine Klasse hat aber i.d.R. dann eine eigene intere Struktur.

---

Du schreibst hinter jeder deiner Klassen ein <E> bei dem Test verwendest du es aber nicht ;D

Hoffe du weißt, wie man damit umgeht ^^
 

Haave

Top Contributor
Ich muss ein wenig korrigieren:

Die Lösung liegt in erster Line nicht dadrin von einer Klasse zu erben, die bereits Iterable implementiert, sondern direkt das Interface zu implementieren.
Hm, das hatte ich mit meinem Beitrag eigentlich ausdrücken wollen (war vielleicht irgendwie missverständlich :oops: ).
Also: Es kracht bei deiner Schleife, weil man durch die fehlende Implementierung von Iterable nicht mit Schleifen über Objekte deiner eigenen Klasse drüberlaufen kann. Deshalb musst du Iterable selbst implementieren. Eine andere Möglichkeit wäre (und das kam vielleicht verwirrend in meinem ersten Satz rüber), deine Klasse von ArrayList erben zu lassen, dann sollte Iterable bereits implementiert sein. Das ist aber wie gesagt kein Muss, und wenn du eine solche Listenklasse selbst schreiben willst, ist es vielleicht auch ganz gut, wenn du alles von Hand implementierst :)
 

Sophie

Bekanntes Mitglied
Danke für die Antworten.
Leider verstehe ich nicht so ganz, wie das funktionieren soll.
Könnt Ihr mir bitte weiterhelfen?
 

Sophie

Bekanntes Mitglied
So, ich hab mir das jetzt alles mal durchgelesen und habe meinene Testklasse abgeändert.
Jetzt gibt es aber ein Problem mit der Methode iterator()
Wisst Ihr, warum das nicht funktioniert?

Java:
import java.util.ArrayList;
import java.util.Iterator;


public class MeineArrayListTest<E> {
 
	public static void main(String[] args) {

		MeineArrayList<String> ms = new MeineArrayList<String>(5, 3);

		ms.add("1");
		ms.add("2");
		ms.add("3");
		ms.add("4");
		ms.add("5");

		Iterator itr = ms.iterator();

		while (itr.hasNext())
			System.out.println(itr.next());
	}
}
 
G

gman

Gast
Hi,

du musst die Methode "iterator" natürlich auch in deiner Array-Klasse implementieren. Und zwar nicht
einfach nur die Methode da reinbasteln, sondern die Klasse muss auch das Interface "Iterable" implementieren,
wie dir Marcinek und Haave schon gesagt haben.

Java:
public class MyClass implements EinInterface {

   public void nameDerMethodeDieVomInterfaceDefiniertWird() {
        //deine Implementierung
   }
 

XHelp

Top Contributor
Zumal dein Test auch falsch ist: Du erstellst eine angeblichListe von Strings, gehst mit der Schleife über jeden Integer-Wert um dann letztendlich das Objekt der Gesamtliste auszugeben... Also 2/3 Sachen sind fehl am Platz.
 
Zuletzt bearbeitet:
T

Tester

Gast
Ich habe ein ähnliches Problem !

[Java]
package lottoprog;

import java.sql.*;
import java.sql.DriverManager;
import java.util.*;
public class lottodb {
private static Connection con = null;
private static ArrayList<lottozahl>tab=new ArrayList<lottozahl>();
private static ArrayList<lottozahl>tabt;
private static ResultSet rs;
private static lottozahl tabr=new lottozahl();
private static int[] tabz=new int[7];
private static int i=0,k=0;
private static boolean b;
public static ArrayList<lottozahl>gettable(){
try
{
Class.forName( "sun.jdbc.odbc.JdbcOdbcDriver" );
//Class.forName( "org.hsqldb.jdbcDriver" );
//Class.forName( "com.company.DBDriver");
}
catch ( ClassNotFoundException e )
{
System.err.println( "Keine Treiber-Klasse!" );
e.printStackTrace();
return null;
}

try
{
con = DriverManager.getConnection("jdbc:eek:dbc:lottodb");

//con = DriverManager.getConnection( "jdbc:hsqldb:file:lottodb", "sa", "" );
//con = DriverManager.getConnection( "jdbc:eek:dbc:Driver={Microsoft Access Driver Zeilen-Umbruch (*.mdb)};DBQ=d:/Bernd_lotto1.mdb", "name", "pass" );
Statement stmt = con.createStatement();
// stmt.executeUpdate( "INSERT INTO CUSTOMER VALUES(50,'Christian',Zeilen-Umbruch 'Ullenboom','Immengarten 6','Hannover')" );

rs = stmt.executeQuery( "SELECT * FROM Lotto_Zahlen_gesamt" );

while ( rs.next() ){
//System.out.println( rs.getString(1)+" "+ rs.getString(2)+" "+ rs.getString(3)+" "+rs.getString(4)+" "+ rs.getString(5)+" "+rs.getString(6)+" "+rs.getString(7)+" "+ rs.getString(8)+" "+rs.getString(9)+" "+rs.getString(10)+" "+ rs.getString(11)+" "+rs.getString(12) );
// Ziehungsnummer einlesen
tabr.set(0,rs.getInt(1));
// Jahr einlesen
tabr.set(1,rs.getInt(3));
// Wochenzahl einlesen
tabr.set(2,rs.getInt(4));
// Datum Einlesen
tabr.set(0,rs.getString(2));
//Wochentag einlesen
tabr.set(1,rs.getString(5));
// Lottozahlen einlesen
for (i=0;i<7;i++)
tabz=rs.getInt(6+i);
tabr.set(tabz);
// Ziehungsdaten in Tabelle einfügen
tab.add((tab.size()),tabr);
System.out.println(tabr.get(0)+" "+b+" "+tab.get(k).get(0));
k++;
}
rs.close();

stmt.close();
}
catch ( SQLException e )
{
e.printStackTrace();
}
finally
{
if ( con != null )
try { con.close(); } catch ( SQLException e ) { e.printStackTrace(); }
}
for (i=0;i<=(tab.size()-1);i++){
System.out.println(tab.get(i).get(0)+" "+i);
}
return tab;
}
public static void main(String args[]){
tabt=gettable();
tabt.remove(tabt.size()-1);
for (i=0;i<=(tabt.size()-2);i++){
tabr=tabt.get(i);
System.out.println(tab.get(i).get(0)+" "+i+" "+tabr.get(1));
}
}
}
[/Java]
Beim erstem Aufruf liest der noch Normal die Elemente. Bei den weiteren immer nur das letze. Egal an welcher Stelle ich mit
"get(x)" die lese.

Kann mir hierzu jemand weiterhelfen?
 

XHelp

Top Contributor
Öhm, durch eine kreative Formatierung und vielsagende Namen (tab,tabz,tabr,tabt) lässt sich natürlich rein gar nichts erkennen.
Es könnte aber sein dass bei der Schleife in Zeile 53 die geschweiften Klammer fehlen... mach dir Debugausgaben rein, dann wirst du sehen wo was schiefläuft.
 

XHelp

Top Contributor
Lesbarer im Sinne, dass man verstehen kann, was da passiert. Die ganzen Variablen sind ziemlich nichtssagend und gleichaussehend. KSKB ist ein kurzes selbsträndiges kompilierbares Beispiel. So dass man es rüber kopieren kann und selber ausprobieren kann. Ohne Datenbank, mit fehlenden Klassen (deren Namen übrigens groß geschrieben werden) etc.
 
T

Tester

Gast
Ich hab das Problem!

In Zeile 41 muss stehen
[Java]
tab=new ArrayList<lottozahl>();
[/Java]
;-)
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
I 2D-Array Position der Liste ausgeben. Java Basics - Anfänger-Themen 2
P Was genau bringt mir es ein Array in eine Liste zu bringen Java Basics - Anfänger-Themen 3
P Verschachtelte Array Liste Java Basics - Anfänger-Themen 2
P Performance Array und Liste Java Basics - Anfänger-Themen 13
M Array liste Verdrehen Java Basics - Anfänger-Themen 8
A Eingelesene Daten in Array(Liste) abspeichern? Java Basics - Anfänger-Themen 18
J Liste in Array Java Basics - Anfänger-Themen 2
D Array-Liste nur einmal ausgeben Java Basics - Anfänger-Themen 8
Hijo2006 Array/Liste ohne Obergrenze Java Basics - Anfänger-Themen 38
S jList --> Array einfügen und Liste löschen Java Basics - Anfänger-Themen 5
E Array zu Liste - kleines Problem Java Basics - Anfänger-Themen 6
A Mehrdimensionalles Array in String ausgeben in Liste Java Basics - Anfänger-Themen 5
L Liste als Array realisieren Java Basics - Anfänger-Themen 23
A Liste in Array konvertieren Java Basics - Anfänger-Themen 30
J Initialisierung Array-Liste Java Basics - Anfänger-Themen 3
L Erste Schritte Super Constructor mit Array - Liste? Java Basics - Anfänger-Themen 15
D Array Liste Java Basics - Anfänger-Themen 7
A dynamisches Array - Index Liste Java Basics - Anfänger-Themen 2
M Array - String - Liste Java Basics - Anfänger-Themen 14
J Mehrdimensionale Liste erstellen ohne Array Java Basics - Anfänger-Themen 14
S Liste oder Array filtern Java Basics - Anfänger-Themen 2
M Array oder Liste Java Basics - Anfänger-Themen 10
G Liste in Array schreiben Java Basics - Anfänger-Themen 13
J Array in einer Liste Java Basics - Anfänger-Themen 2
L array of objects in liste packen Java Basics - Anfänger-Themen 2
G Array - lineare Liste Java Basics - Anfänger-Themen 2
S 2dimensionales Array als Liste speichern Java Basics - Anfänger-Themen 19
T Array verkleinern Java Basics - Anfänger-Themen 2
J Array aus Numberfield Eingaben Java Basics - Anfänger-Themen 7
D Array List mit Objekten sortieren Java Basics - Anfänger-Themen 2
onlyxlia Anzahl Random Zahlen mit Scanner abfragen und in Array speichern Java Basics - Anfänger-Themen 10
Ü Java Array - Buchstaben als Zahlen ausgeben Java Basics - Anfänger-Themen 22
Ü Zweidimensionales Array in der ersten Zeile deklarieren Java Basics - Anfänger-Themen 13
Thomas Uppe 2D Array Reihenfolge vermischen Java Basics - Anfänger-Themen 4
T array auslesen Java Basics - Anfänger-Themen 2
Nitrogames Variablen Variable aus JOptionPane Abfrage in Array einfügen Java Basics - Anfänger-Themen 4
moini Auf Array aus Superklasse zugreifen? Java Basics - Anfänger-Themen 2
J ArrayList in 2D-Array konvertieren. Java Basics - Anfänger-Themen 48
M NullPointerException: Cannot read the array length because "this.Kinder" is null Java Basics - Anfänger-Themen 1
P Wieso kann ich als Index für einen Array einen Char angeben? Java Basics - Anfänger-Themen 3
Finn_lol Fehlermeldung bei Schleife mit Array Java Basics - Anfänger-Themen 4
Proxy Chars vor array übergabe toLowerUpcase Java Basics - Anfänger-Themen 14
iAmFaiinez Primzahlen Tester ohne Array Java Basics - Anfänger-Themen 4
S array 2 dimensional treppe Java Basics - Anfänger-Themen 3
S Array 2x2 Blöcke mit 0 und 1 Java Basics - Anfänger-Themen 10
C Array von Klassen Java Basics - Anfänger-Themen 2
julian0507 2Dim-Array Spaltensummen Java Basics - Anfänger-Themen 1
XWing Doppelte Zahlen im Array Java Basics - Anfänger-Themen 8
melisax Java 2D-Array Tabelle Java Basics - Anfänger-Themen 4
melisax Java Array Wert an bestimmtem Index angeben Java Basics - Anfänger-Themen 14
W Items löschen aus String Array vom Custom Base Adapter Java Basics - Anfänger-Themen 2
Proxy Stack erweitern mit neuem Array falls der alte voll ist!? Java Basics - Anfänger-Themen 5
E Array, nächste Zahl zur 5 ausgeben, wie? Java Basics - Anfänger-Themen 42
J Array.list vergleichen Java Basics - Anfänger-Themen 1
W Java-Code mit Array Java Basics - Anfänger-Themen 14
D Reflections & Generisches Array Java Basics - Anfänger-Themen 4
T Array Java Basics - Anfänger-Themen 2
T Array Java Basics - Anfänger-Themen 15
T Wörteranzahl im Array zählen Java Basics - Anfänger-Themen 9
Ostkreuz Zweidimensionaler Array Index Java Basics - Anfänger-Themen 2
S String Array Buchstaben um einen gewissen Wert verschieben Java Basics - Anfänger-Themen 4
R Images aus einem Array ausgeben Java Basics - Anfänger-Themen 3
R 2d Array individuell machen Java Basics - Anfänger-Themen 4
D 2D Char Array into String Java Basics - Anfänger-Themen 2
J Array Median bestimmen Java Basics - Anfänger-Themen 6
S Array Maximum bestimmen mit for und foreach Java Basics - Anfänger-Themen 7
S Prüfen ob ein zweidimensionales Array rechteckig ist Java Basics - Anfänger-Themen 4
N Array Java Basics - Anfänger-Themen 1
J Array Mittleren Wert bestimmen Java Basics - Anfänger-Themen 2
D OOP Array einem Objekt zuweisen Java Basics - Anfänger-Themen 2
O Zahlen aus einem char-array per char + Zeichen addieren Java Basics - Anfänger-Themen 2
S leeres Array statt Null Pointer Exception ausgeben Java Basics - Anfänger-Themen 20
S Inhalte aus Array vergleichen und Max ausgeben Java Basics - Anfänger-Themen 3
M 2d array ohne längen anlegen Java Basics - Anfänger-Themen 4
S Bestimmte werte aus einem Array löschen Java Basics - Anfänger-Themen 2
S Ausgeben wie oft ein Wert in einem Array vorkommt Java Basics - Anfänger-Themen 7
E Reihenfolge der Werte umdrehen (mittels statischem int-Array Java Basics - Anfänger-Themen 3
O 2 Dimensionales Array Java Basics - Anfänger-Themen 6
M Bubble Sort - Int[] Array sortieren Java Basics - Anfänger-Themen 2
javaBoon86 Array mehrere Dimensionen Java Basics - Anfänger-Themen 10
B Array nach Elementwerten sortieren? Java Basics - Anfänger-Themen 1
B Explizit Array definieren geht nicht? Java Basics - Anfänger-Themen 14
D Kleinste Zahl in Array finden die vorher noch errechnet werden müssen. Java Basics - Anfänger-Themen 4
L Gegebenes Array sortieren, indem zufällige Zahlenpaare aus Array ausgewählt werden Java Basics - Anfänger-Themen 14
Say 2-DIM Array Code lesen und verstehen Java Basics - Anfänger-Themen 5
N Array beim erstellen mit Werten füllen Java Basics - Anfänger-Themen 6
C Java Array Struktur, welche ist wann besser? Java Basics - Anfänger-Themen 12
Temsky34 Array IndexOf nicht verfügbar Java Basics - Anfänger-Themen 18
belana wie am besten 2D Array von String to Integer Java Basics - Anfänger-Themen 18
S Array mit Methode löschen Java Basics - Anfänger-Themen 2
J Java To String Methode, Array mit For-Schleife Java Basics - Anfänger-Themen 2
E Durch Muster in Array iterieren Java Basics - Anfänger-Themen 3
L Frage zum Array Java Basics - Anfänger-Themen 1
C 2D Array Ausgabe mit for-Schleife i,j Java Basics - Anfänger-Themen 4
D Methode: Array Reihenfolge tauschen Java Basics - Anfänger-Themen 3
julian0507 Array aus Methode in anderer Methode sichtbar machen Java Basics - Anfänger-Themen 10
P Array vom Typ Klasse Java Basics - Anfänger-Themen 18
Lion.King Array deklarieren und initialisieren Java Basics - Anfänger-Themen 5
P Array-Objekte-Aufruf Java Basics - Anfänger-Themen 22
A CSv.Datei einlesen und die werte in zweidemosional Int Array speichern Java Basics - Anfänger-Themen 9

Ähnliche Java Themen

Neue Themen


Oben