Collections - subList erstellen

Dennis9

Mitglied
Hallo, habe gerade ein Brett vor dem Kopf, es geht um die Fuktion subList(int fromIndex, int toIndex). Also ich will zu der ArrayList list2, noch eine Teilliste dranhängen.

Meine Überlegung: Man soll ja bei der subList-Funktion den ersten Übergabeparameter (fromIndex) einschließlich der Teilliste nehmen, und (toIndex) ausschließlich soweit ich das richtig verstanden habe.

Die ArrayList list2 gibt mir 15 Elemente aus, also muss der letzte Index = 14 sein, daher nehme ich für das Teilarray fromIndex = 15. Ich will 7 Werte in das Teilarray schreiben, also nehme ich toIndex = 22 (ausschließlich). Trotzdem wirft er mir ne Exception .. kann mir jmd helfen ?
hoffe das ist jetzt nich zu unübersichtlich :D

Java:
import java.util.*;

public class ListTest
{
	//Elemente in Liste einfügen
	static void fillList(List list)
  	{
		//Zahlen von 0 bis 19 als Zeichenketten (Strings) einfügen
    	for (int i = 0; i < 20; ++i) 
		{
      		list.add("" + i);
    	}
		//Element an der Position 3 entfernen
    	list.remove(3);
		//Erstes Element in der Liste entfernen, das gleich "6" ist
    	list.remove("6");
  	}

	//Liste vom Anfang bis zum Ende durchlaufen und Elemente ausgeben
  	static void printList(List list)
  	{
		ListIterator it = list.listIterator();
		while (it.hasNext()) 
		{
      		System.out.print((String)it.next()+" ");
    	}
    	System.out.println("\n-");
  	}
  	
  		// Aufgabe 42 
  		static void printInverseList(List list)
  		{
  			int lastindex = list.size(); // !!
  			ListIterator inv = list.listIterator(lastindex);
  			while(inv.hasPrevious())
  			{
  				System.out.print(inv.previous()+" ");
  			}
  			System.out.println("\n-");
  		}
  		
  		// Aufgabe 43
  		static void remove5List(List list)
  		{
  			String temp;
  			ListIterator it = list.listIterator();
  			while(it.hasNext())
  			{	
  				temp = (String) it.next();
  				if (temp.startsWith("0"))
  					continue;
 
  				if ( temp.endsWith("0") || temp.endsWith("5") )
  					it.remove();
  			}	
  		}
  		
  		// zu Aufgabe 44
  		static void fillSubList(List list)
  		{
  			for (int i = 7; i < 14; ++i)
  			{
  				list.add("" + i);
  			}
  		}
  	
  	

  	public static void main(String[] args)
  	{
    	//Erzeugen der LinkedList
    	LinkedList list1 = new LinkedList();
    	fillList(list1);
    	printList(list1);
    	printInverseList(list1);
    	
    
		//Erzeugen der ArrayList
    	ArrayList list2 = new ArrayList();
    	fillList(list2);
    	remove5List(list2);
    	printList(list2);
    	printInverseList(list2);
    	System.out.println("\n\n list2-Groesse:"+list2.size());
    	
    	// Aufgabe 44
    	list2.subList(15, 22);  // <<-------------------------------
    	fillSubList(list2);
    	printList(list2);
  	}
}


Ausgabe:
Java:
0 1 2 4 5 7 8 9 10 11 12 13 14 15 16 17 18 19 
-
19 18 17 16 15 14 13 12 11 10 9 8 7 5 4 2 1 0 
-
0 1 2 4 7 8 9 11 12 13 14 16 17 18 19 
-
19 18 17 16 14 13 12 11 9 8 7 4 2 1 0 
-


 list2-Groesse:15
Exception in thread "main" java.lang.IndexOutOfBoundsException: toIndex = 22
	at java.util.SubList.<init>(Unknown Source)
	at java.util.RandomAccessSubList.<init>(Unknown Source)
	at java.util.AbstractList.subList(Unknown Source)
	at ListTest.main(ListTest.java:87)
 
Zuletzt bearbeitet:

eRaaaa

Top Contributor
Ich glaube du verstehst die Methode subList falsch. Die hängt nichts dran, sondern sie liefert eine neue Liste mit den Werte aus dem Bereich [from....to) aus der Liste auf der du die Methode anwendest

List (Java Platform SE 6)

Und du willst jetzt eig. was machen?
 

Dennis9

Mitglied
achoooo okay dann hab ich das wohl falsch verstanden ..

also ich will eine Teilliste der Liste list2 erzeugen, die mit dem Element "7" anfängt und dem Element "13" endet ..

das wäre doch dann so oder:

Java:
 list2.subList(7,14);
 

eRaaaa

Top Contributor
Also,

a) du musst natürlich aufpassen..bei subList gehts um den Index, nicht ums Element ! Was ich meine ist, dass du ja z.B. bei deiner ersten Liste die Strings "0"-"19" in die Liste steckst, dann den String am Index 3 ,also den String "3" löschst und anschließend auch noch den String "6" löschst. Dadurch verschieben sich natürlich deine Strings "7" und "13" so dass du bei subList(7,14) dann die Strings "9" - "15" erhalten würdest.

b) nur subList(...) aufzurufen bringt natürlich nichts. Du müßtest das schon irgendwie zuweisen oder irgend etwas damit machen.
Java:
	List sublist = list1.subList(7, 14); //besser wäre sicherlich auch generische Listen!

c) Desweiteren muss man auch aufpassen beim Löschen etc., denn die subListe hängt eng mit der anderne Listen zusammen, das steht aber auhc oben im Link

..so genau weiß ich aber immer noch nicht was genau du dann eig. machen willst mit der subList ;/
 
Zuletzt bearbeitet:

Dennis9

Mitglied
achja genau die elemente sind ja die Werte die über die Indizes angesprochen werden ..

wollte die subList ausgeben .. List sublist = ............ diese Zuweisung hat mir noch gefehlt also wie man die Teilliste abspeichert um sie nacher auszugeben .. :) naja arbeite das erste mal mit listen ..

aber hat nun alles geklappt thx !

Java:
List sublist = list2.subList(4, 10);
    	printList(sublist);
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
U Sortierung in collections testen Java Basics - Anfänger-Themen 11
X Collections.sort als Lambda Java Basics - Anfänger-Themen 14
berserkerdq2 Geht collections.sort bei allen? Linkedhashset, ArrayList, HashSet etc. Java Basics - Anfänger-Themen 4
O Collections.sort und List.sort mit Lambda Verwirrung Java Basics - Anfänger-Themen 5
B Collections.sort mit zwei Bedingungen? Java Basics - Anfänger-Themen 4
I Collections.shuffle funktioniert nicht Java Basics - Anfänger-Themen 1
M Collections Frage Java Basics - Anfänger-Themen 1
D Methoden Collections.shuffle mit bestimmtem Startwert? Java Basics - Anfänger-Themen 8
T Java Collections Java Basics - Anfänger-Themen 58
X Collections Collections Maps Frage Java Basics - Anfänger-Themen 4
C Collections: private Map Java Basics - Anfänger-Themen 4
V Collections Java Basics - Anfänger-Themen 3
A Collections Java Basics - Anfänger-Themen 2
P collections.sort Java Basics - Anfänger-Themen 2
R Iterationsreihenfolge über Collections Java Basics - Anfänger-Themen 4
S Klassen Collections Java Basics - Anfänger-Themen 10
J Polymorphie Iteratoren statt Collections Java Basics - Anfänger-Themen 13
H Etwas wie sort() / sorted() in JAVA-Collections? Java Basics - Anfänger-Themen 5
F Collections ArrayList oder Hashmap mittel Collections.sychronised Java Basics - Anfänger-Themen 6
S Bestimmte Objekte aus Collections anwählen/herausbekommen Java Basics - Anfänger-Themen 8
M Collections mit >2 type Parametern? Java Basics - Anfänger-Themen 8
S Frage zu Collections.frequency() Java Basics - Anfänger-Themen 3
T Collections Übersicht Collections Java Basics - Anfänger-Themen 4
X Collections Inhalt von zwei Collections prüfen Java Basics - Anfänger-Themen 4
A Generische Collections und Vererbung Java Basics - Anfänger-Themen 2
K Telefonbuch Implementation mit Java Collections Java Basics - Anfänger-Themen 4
G Collections.binarySearch(LinkedList): cannot find method Java Basics - Anfänger-Themen 6
S Collections Sortieren von 3 Collections nach "einer Sortierung" Java Basics - Anfänger-Themen 3
T Kleine Frage zu Collections Java Basics - Anfänger-Themen 3
A Collections und ArrayList Java Basics - Anfänger-Themen 2
S Klasse Mit Collections Java Basics - Anfänger-Themen 32
X DB4O Collections and Arrays, brauche dringend Hilfe! Java Basics - Anfänger-Themen 3
D Datentypen Generische Collections und Warnings Java Basics - Anfänger-Themen 8
K Aufgabe Collections Java Basics - Anfänger-Themen 2
S Frage zu Enumerator der trad.Collections Java Basics - Anfänger-Themen 8
M Instanzen, Referenzen und Collections Java Basics - Anfänger-Themen 3
Dit_ Collections.sort(..); | Anwendung Java Basics - Anfänger-Themen 4
T array erweitern/flexible ohne collections usw. Java Basics - Anfänger-Themen 3
S Collections Java Basics - Anfänger-Themen 13
M Collections{Liste aus Objekten erzeugen] Java Basics - Anfänger-Themen 19
S generics und Collections#unmodifiableList Java Basics - Anfänger-Themen 2
G Wann Arrays, wann Collections? Java Basics - Anfänger-Themen 36
N Collections Sort ArrayList<> Java Basics - Anfänger-Themen 7
N Suche Infos zu Maps - Collections Java Basics - Anfänger-Themen 4
G erstes Arbeiten mit Collections Java Basics - Anfänger-Themen 17
Zed Collections? ArrayList, Vector. Java Basics - Anfänger-Themen 2
M Collections kopieren (ArrayList<Point>) Java Basics - Anfänger-Themen 3
T Fragen zu Collections Java Basics - Anfänger-Themen 2
J Collections "schachteln" Java Basics - Anfänger-Themen 5
ff Java Collections Java Basics - Anfänger-Themen 4
H Collections Frameworks Java Basics - Anfänger-Themen 38
T Object Collections durchsuchen und nutzen Java Basics - Anfänger-Themen 6
S Mit Collections elemente sammeln Java Basics - Anfänger-Themen 7
D Collections.sort() frage Java Basics - Anfänger-Themen 6
G Java Collections Framework : id + 5 Werte , gibt es sowas Java Basics - Anfänger-Themen 4
frau-u Collections und Interfaces Java Basics - Anfänger-Themen 2
N Sublist Java Basics - Anfänger-Themen 2
M Source Code von java.util.SubList Java Basics - Anfänger-Themen 2
M subList Java Basics - Anfänger-Themen 11
XWing Int erstellen lassen? Java Basics - Anfänger-Themen 11
onlyxlia Schlüsselworte Was meint man mit "einen Typ" in Java erstellen? Java Basics - Anfänger-Themen 2
A exe Datei erstellen Java Basics - Anfänger-Themen 8
J Packages erstellen Java Basics - Anfänger-Themen 7
Athro-Hiro Weißes Bild in Java erstellen Java Basics - Anfänger-Themen 3
H Excel-Tabellen mit Java erstellen Java Basics - Anfänger-Themen 4
D MacOS: PDF erstellen geht nicht Java Basics - Anfänger-Themen 1
benny1993 Java Programm erstellen für ein Fußball-Turnier Java Basics - Anfänger-Themen 3
M Datentypen While-Schleife eine Java Methode erstellen Java Basics - Anfänger-Themen 3
P Welches SDK für das erstellen einer ausführbaren Datei? Java Basics - Anfänger-Themen 4
I Klassen von einem package laden, Statisches Feld auslesen und Objekt erstellen Java Basics - Anfänger-Themen 8
C Gewinnspiel erstellen mit Algorithmus Java Basics - Anfänger-Themen 3
Ostkreuz Spielfeld Schatz erstellen Java Basics - Anfänger-Themen 5
I Erste Schritte Einfache Datenbank-Webseite erstellen als Nicht-IT-lerin Java Basics - Anfänger-Themen 24
T Objekte mit arrays erstellen Java Basics - Anfänger-Themen 6
B Klasse statisch erstellen da n-mal geladen Java Basics - Anfänger-Themen 3
laxla123 Dreieck erstellen Java Basics - Anfänger-Themen 1
XWing Random Punkte erstellen mit der Random klasse Java Basics - Anfänger-Themen 15
A Passwort erstellen Java Basics - Anfänger-Themen 3
S CVS erstellen Java Basics - Anfänger-Themen 1
RashAGhul Java Verwaltungstool Erstellen mit kaum Wissen Java Basics - Anfänger-Themen 9
K warum kann ich das Objekt nicht erstellen ? Java Basics - Anfänger-Themen 2
paulen1 Best Practice "Unchecked Assignment" Warnung beim erstellen eines 2D Arrays of Arraylists Java Basics - Anfänger-Themen 2
dennis_lnz Klassen Wie kann ich mein Java Textadventure verbessern, um ein Klassendiagramm zu erstellen? Java Basics - Anfänger-Themen 9
dcHost Java Kara Sensor erstellen Java Basics - Anfänger-Themen 1
JustAProgrammer Ein Dreieck mit Arrays erstellen Java Basics - Anfänger-Themen 2
C GLOOP Problem beim Erstellen der Kamera Java Basics - Anfänger-Themen 9
N Array beim erstellen mit Werten füllen Java Basics - Anfänger-Themen 6
F abbruch Exception lässt sich nicht erstellen Java Basics - Anfänger-Themen 2
U JList erstellen Java Basics - Anfänger-Themen 2
X Wie kann man ein Regex erstellen, die 8-Bit-Binär-Zahlen darstellen. Java Basics - Anfänger-Themen 1
httprt Probleme bei dem erstellen von leveln in meinem Spiel Java Basics - Anfänger-Themen 2
frager2345 Programm erstellen ohne Autoboxing und Unboxing Java Basics - Anfänger-Themen 13
berserkerdq2 IO Streams logfile erstellen und Sachen schreiben wie? Java Basics - Anfänger-Themen 2
B Teilprofil erstellen Java Basics - Anfänger-Themen 1
B Teilprofil erstellen Java Basics - Anfänger-Themen 1
I String Kombination erstellen anhand fortlaufender Zahl (Vertragsnummer) Java Basics - Anfänger-Themen 13
N 2D Array Summe erstellen Java Basics - Anfänger-Themen 6
T Log Funktion erstellen Java Basics - Anfänger-Themen 1
Dorfschmied Kartesisches Produkt von zwei Liste mit Hashmaps<String,String> erstellen Java Basics - Anfänger-Themen 4
S Programm erstellen Java Basics - Anfänger-Themen 3

Ähnliche Java Themen

Neue Themen


Oben