List Pointer zurücksetzen

BitBoy

Aktives Mitglied
Huhu,
kam doch schneller an meine Grenzen, alls ich dachte. ???:L
Im meinem Programm habe ich mehrere Sammlungen wie..
[Java] List<String> numlist = new LinkedList<String>(numlistebase);
List<String> neulist = new LinkedList<String>(numlistebase);
List<String> sublist = new LinkedList<String>(numlistebase);[/Java]
Diese werden bearbeitet mit add, remove, size, das übliche eben.
Klappt alles ganz gut:toll:
Die Listen enthalten Nummern ( Strings in meinem Fall, da ich die nacher reihen will ohne, das er rechnen anfängt)
Nun möchte ich mit Substring, die Strings in 3er Schritten aufteilen.. (l1 auch linkedList)
[Java] sublist=l1.subList(0, 3);

int li =0;
int string1=0;
int string2=0;
int string3=0;
for(Iterator nli = numlist.iterator();nli.hasNext();){
String suchstring=(String) nli.next();

if (!sublist.contains(suchstring)){
templist.add(suchstring);
}// If Statement
}//For schleife
Iterator nl1 = l1.iterator(); [/Java]
Klappt auch super, nun zum Punkt, etwas weiter im Code, selbe Methode noch, möchte ich
, den nächsten 3er Schritt mit...
[Java] sublist.clear();
sublist = new LinkedList<String>(numlistebase);
sublist = l1.subList(3,6); [/Java]
Nun gibt er mir aber nicht Index 3-6 zurück, sondern pos 6-9. Müßte allo wieder 0-3 anfordern um 3-6 zu bekommen ???:L
Von der Logik, leuchtets ein. Sind ja Arrays die mit einem Index Pointer arbeiten, banal ausgedrückt.
Wie kann ich wieder bei 0 anfangen, allso Pointer zum Anfang setzen. Bei VB gibt es movefirst, movelast.
Bei Java funkt. nur next, bei mir, hatte auch irgendwas von previous() in Erinnerung, finde das aber nicht, weder in den List Methoden noch im Iterator. Oder denk ich falsch. :(
Ich hoffe ich habe, das ganze möglichst einleuchtend erklärt. Bei Unsicherheiten bitte fragen, weis echt nimmer weiter. Danke
 
N

nillehammer

Gast
Iterator ist ein Interface, mit dem man über alle Arten von Collections iterieren kann. Dies beinhaltet eben auch welche, wo die Elemente (möglicherweise) keine festgelegte Reihenfolge haben. Was Du suchst, ist ListIterator (ListIterator (Java Platform SE 7 )).
 
S

SlaterB

Gast
Java:
   sublist.clear();
   sublist = new LinkedList<String>(numlistebase);
   sublist = l1.subList(3,6);
von diesen drei Zeilen kannst du dir die ersten beiden einsparen, die alte Liste wird sowieso weggeschmissen, musst du nicht leeren,
eine neue Liste musst du selber auch nicht anlegen, genauso reicht am Anfang bei der Variablendeklaration null oder ähnliches als Wert,
der dritte Aufruf erzeugt eine Liste und speichert sie in der Variablen, alles vorher ist nur Rauschen

------

wenn 3-6 nicht funktioniert, warum auch immer, nicht erkennbar, was ist li? bei einer normalen Liste sollte eigentlich
durch subList() nichts entfernt werden,
wenn jedenfalls nicht 3-6, dann verwende doch wieder 0-3, klingt erstmal nicht abwegig

was dagegen spricht, was auf einmal ein Iterator mit next() oder previous() Probleme macht ist nicht wirklich verständlich,
wenn du auf die zweite subList wieder einen Iterator definierst, sollte der doch funktionieren wie der erste?

der alte Iterator von der ersten subList ist sicher nicht mehr zu gebrauchen, aber hast du ja auch innerhalb der Schleife definiert,
ist wohl kein Thema mehr

> Iterator nl1 = l1.iterator();
gibt es noch, wofür ist der gut? was mit dem passiert kann in der Tat fraglich werden,
besonders wenn wie du behauptest Elemente aus li (ungeklärt?) verschwinden sollten
 

BitBoy

Aktives Mitglied
von diesen drei Zeilen kannst du dir die ersten beiden einsparen
Hm, ja, denke das ist ein typisches Anfängersyndrom, nutzlosen Code zu schreiben ;)
Aber guter Hinweis.
li u. der am Ende Iterator, sind bei anderen Vorgängen wichtig. Ist ein Auszug von der orginal Datei. Sorry wenns erstmal verwirrt hat.
wenn jedenfalls nicht 3-6, dann verwende doch wieder 0-3, klingt erstmal nicht abwegig

was dagegen spricht, was auf einmal ein Iterator mit next() oder previous() Probleme macht ist nicht wirklich verständlich

Abwegig nicht, ist in meinem Fall bestimmt auch möglich, nur wenn 0-3 Index mir pos 3-6 gibt. Ist es gar nimmer möglich wirklich auf 0-3 zuzugreifen. Ich nutze mein Projekt um Java zu lernen u. wollte möglichst viel verstehen über den Ablauf auch für zukünftige Projekte. Es wunderte mich halt das man
wenn man eine Sublist von einer Liste (z.b. l1)erstellt, man nimmer auf die ersten 3 zugreifen kann. Brauchts au net man hat 0-3 ja schon in einer Var. Ich ging von dem Fall aus das man evtl. eben 0-4 braucht, dann währs schon eher ein Problem. Werde mal wie von Nillehammer empfohlen und ListInterator nutzen. Knie mich da ers mal rein. Ersmal Danke halt euch aufm laufenden ;)
 
Zuletzt bearbeitet:

BitBoy

Aktives Mitglied
Iterator ist ein Interface, mit dem man über alle Arten von Collections iterieren kann. Dies beinhaltet eben auch welche, wo die Elemente (möglicherweise) keine festgelegte Reihenfolge haben. Was Du suchst, ist ListIterator (ListIterator (Java Platform SE 7 )).

Danke für den Tip, werd mich da mal reinlesen. Hab relativ neu mit Collections angefangen, habs vorher mit normalen Arrays versucht *Ächz* Die Möglichkeiten sind so vielfältig mit Collections. Das gut sein kann hab was übersehen. Danke ersmal, probiers aus. Halt euch aufm laufenden.
 

BitBoy

Aktives Mitglied
besonders wenn wie du behauptest Elemente aus li (ungeklärt?) verschwinden sollten
Hab mich da bestimmt falsch ausgedrückt. Die verschwinden nicht, man kann nur mit der neuen Sublist, nicht mehr darauf zugreifen. Index 0-3 währe theoretisch beim 2. Versuch Index -3 - 0.
Und dat geht ja gar net:noe:
 
S

SlaterB

Gast
> Ich ging von dem Fall aus das man evtl. eben 0-4 braucht, dann währs schon eher ein Problem.
warum erklärst du aber nicht,

> Index 0-3 währe theoretisch beim 2. Versuch Index -3 - 0.
warum erklärst du aber nicht,

> man kann nur mit der neuen Sublist, nicht mehr darauf zugreifen
oder meinst du, dass du mit einer Sublist von 3-6 nicht mehr auf 0-3 in der Ursprungsliste zugreifen kannst?
nun, das liegt offensichtlich in der Natur der Sache so einer "Sublist",



also ich sehe weiter nicht durch, vielleicht aber auch nicht nötig
 

BitBoy

Aktives Mitglied
> Ich ging von dem Fall aus das man evtl. eben 0-4 braucht, dann währs schon eher ein Problem.
warum erklärst du aber nicht,
Naja, das warum war ja die Frage. Is mir peinlich, das ich es nicht schaffe, das Problem plausibel darzustelle.
OK

Versuchs nochmal...
Liste l1 enthält eine Ziffernfolge "1","2","3","4", etc
Mit der 1. Sublist(0,3) bekomme ich allso "1","2","3" recht straight bis dahin
Beim 2. Versuch mit mit Sublist(0,3) bekomme ich aber "4","5","6" statt eben "1","2","3"
Werde im Zweifelsfall eben mit
[Java]for(int i=0;i<3;i++ .... sublist.add(l1.get(i)) bzw. for(int i=3;i<6;i++ etc..[/Java]
mein Problem lösen.
Nicht falsch verstehen, möchte nicht eure Zeit verschwenden. Wollte alls Java Lehrling, wissen
warum es sich so verhält. Ob das in der Natur der Listen liegt oder ob ich was falsch mache.
Um irgendwann, ein aufwändigeres Projekt zu planen, wollte ich eben wissen, wann macht es Sinn mit List, mit Arrays o. mit Set etc. zu arbeiten. Learning by doing ist die Idee.
Habe von Hello World bis jetzt, nichts gefragt. Aber das war etwas, wo ich offensichtlich der einzige mit dem Problem bin:bahnhof:. Naja nix für ungut. Danke ersmal, wenn ichs rausfinde poste ichs natürlich
 
S

SlaterB

Gast
von 0-4 ist in deinem neuen Posting jetzt nicht mehr die Rede..

also wieder zu 0-3 und dann 3-6,
wie gesagt ist das meiner Ansicht nach nicht Standard und ohne Infos/ vollständiges Programm nicht zu klären

folgendes Programm funktioniert selbstverständlich, man kann subList beliebig oft mit beliebigen Indexen (innerhalb der Grenzen) aufrufen
Java:
public class Test
{
    public static void main(final String[] args)
    {
        List<String> l1 = new ArrayList<String>();
        Collections.addAll(l1, "1", "2", "3", "4", "6");
        List<String> sublist = l1.subList(0, 3);
        for (Iterator it = sublist.iterator(); it.hasNext();)
        {
            System.out.println(it.next());
        }

        sublist = l1.subList(0, 3);
        for (Iterator it = sublist.iterator(); it.hasNext();)
        {
            System.out.println(it.next());
        }

        sublist = l1.subList(0, 3);
        for (Iterator it = sublist.iterator(); it.hasNext();)
        {
            System.out.println(it.next());
        }
    }
}
 

BitBoy

Aktives Mitglied
Habe Deinen Code ausprobiert. Der klappt. Habe aber auch das Problem gefunden, die 2 Linien Code wo
Du gleich am Anfang bemängelt hast alls unnötig. Die weg = funtzt.
Zeigs euch ...

altes Beispiel
[Java]templist.clear();
sublist=l1.subList(0, 3);
System.out.println(sublist + " erster Versuch 0,3 ");........ später.......
// Die 2 unnötigen Linien
sublist.clear();
sublist = new LinkedList<String>(numlistebase);
// kommen gleich weg ;-)

sublist = l1.subList(0,3);
System.out.println(sublist + " zweiter Versuch 0,3 ");[/Java]
erzeugt Ausgabe...
678435921
[6, 7, 8] erster Versuch 0,3
[4, 3, 5] zweiter Versuch 0,3

Mach ich die Linien weg...
[Java]templist.clear();
sublist=l1.subList(0, 3);
System.out.println(sublist + " erster Versuch 0,3 ");........ später.......
// Die 2 unnötigen Linien

// sind jetzt weg ;-)

sublist = l1.subList(0,3);
System.out.println(sublist + " zweiter Versuch 0,3 ");[/[/Java]
erzeugt Ausgabe...
678435921
[6, 7, 8] erster Versuch 0,3
[6, 7, 8] zweiter Versuch 0,3

Freakig gell:D
D.H. die doppelte Initialisierung
sublist.clear();
sublist = new LinkedList<String>(numlistebase);

bewirkt das der Index, da weitermacht wo er aufgehört hat statt von vorne anzufangen.
Interessant zu wissen und lustiger Unterschied. Bin sicher diese Thema erspart, bestimmt noch Kopfschmerzen bei anderen wo, Ihre ersten Schritte mit Listen gehn.
Super vielen Dank. Cooles Forum weiter so :toll:
 
S

SlaterB

Gast
na gut, hätte auch erwartet dass das keinen Ärger macht aber steht in der API mehr oder weniger so drin,

wollte schon fast fragen ob du irgendwo remove() drinstehen hast,
das clear() hätte ich testen können,
auch bisschen was gelernt, aber ich bin da sehr vergesslich
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
8u3631984 Frage Performance bei Linked List und Array List Allgemeine Java-Themen 5
Rakshan Reading through list of objects Allgemeine Java-Themen 8
L Unterschied zwischen List und LinkedList implementierung? Allgemeine Java-Themen 15
Monokuma String List nach Zahlen und Worten sortieren Allgemeine Java-Themen 9
W Enumeration ein Array/List als Eigenschaft mitgeben - warum geht das nicht? Allgemeine Java-Themen 0
X Collections Gibt es eine Klasse welche die Vorteile von List und HashMap vereint, aber konstante Laufzeit (O(1)) hat in Java? Allgemeine Java-Themen 4
W Collections Suche etwas Sorted-List-Artiges...hat jemand eine Idee? Allgemeine Java-Themen 13
M List -Tableview-Javafx-Vererbung Allgemeine Java-Themen 35
R convert 2d array list to 2d array Allgemeine Java-Themen 1
B List<Integer> ist List<Double> ? Allgemeine Java-Themen 6
L Applet Problem "security: Trusted libraries list file not found" ? Allgemeine Java-Themen 7
G Neues Objekt aus List<JsonObject> mit Stream Allgemeine Java-Themen 4
J Array-List Bubble-Sort Allgemeine Java-Themen 12
U javax.mail.Folder.list() zeigt nicht alle Ordner Allgemeine Java-Themen 5
Hacer List<? super E> Allgemeine Java-Themen 10
C Objekte in Array List speichern? Allgemeine Java-Themen 1
P List<Type> Konvertieren in List<List<Type>> Allgemeine Java-Themen 3
P Sorted List o.ä. Allgemeine Java-Themen 2
M Erste Schritte List<> unbekannt?? Allgemeine Java-Themen 8
M List casting error Allgemeine Java-Themen 3
Messoras List zeigt nur das letzte Element an Allgemeine Java-Themen 14
K Collections Collection<> mit List<String> abgleichen? Allgemeine Java-Themen 10
A List<String> auf doppelte Einträge überprüfen Allgemeine Java-Themen 4
U EJB Entity mit List Problem Allgemeine Java-Themen 2
? Objects aus List aussortieren Allgemeine Java-Themen 9
J Elemente zu einer List hinzufügen? Allgemeine Java-Themen 9
T Liste mit GregorianCalendar-Objekten in List einlesen, mit Collection sortieren und ausgeben Allgemeine Java-Themen 3
N List auf null prüfen Allgemeine Java-Themen 2
G List<Person> sortieren Allgemeine Java-Themen 6
A Probleme mit ConcurrentHashMap und List Allgemeine Java-Themen 3
C Komisches Verhalten zwischen Set und List bei contains Allgemeine Java-Themen 6
N Inverted index / inverted list Allgemeine Java-Themen 2
X Eine Map mit X -> List<Y>? Allgemeine Java-Themen 8
Shoox HashMaps in List? Allgemeine Java-Themen 3
B Frage zu Interface und List Allgemeine Java-Themen 4
H List wird nicht richtig gefüllt Allgemeine Java-Themen 6
Z aus private List<???> list eintrag löschen Allgemeine Java-Themen 4
L List <Hauser> in Combobox einfügen Allgemeine Java-Themen 5
isowiz java.util.List: Sortierung nicht nach bestimmten Attribut? Allgemeine Java-Themen 4
K von List getSelected auf ResultSet Datenbank löschen Allgemeine Java-Themen 2
E Speicher frei machen (List) Allgemeine Java-Themen 9
K List in Teillisten zerlegen Allgemeine Java-Themen 2
B Probleme mit awt.List in Chatprogramm Allgemeine Java-Themen 14
MQue List<String> aus List<Object> generieren Allgemeine Java-Themen 2
B List = ArrayList ? Allgemeine Java-Themen 12
N List<? implements "Interface"> geht nicht Allgemeine Java-Themen 13
G Byte- List mit einem Iterator durchlaufen Allgemeine Java-Themen 5
G Linked List zwischen zwei Threds übergeben Allgemeine Java-Themen 11
S List<Double> oder Double[] in double[] zu konvertieren Allgemeine Java-Themen 6
G Methode akzeptiert List<ParentClass> aber nicht List&l Allgemeine Java-Themen 2
G List- Einträge löschen Allgemeine Java-Themen 3
G java.util.List klonen Allgemeine Java-Themen 17
S Collections.binarySearch(list,"a") Allgemeine Java-Themen 7
K Bound mismatch: The generic method sort(List<T>) of ty Allgemeine Java-Themen 4
K "Too many open files" bei Property List Allgemeine Java-Themen 5
P List in Hashmap schreiben Allgemeine Java-Themen 5
J linked list per reverse() "umdrehen" Allgemeine Java-Themen 11
P java.util.List - Typ überschreiben Allgemeine Java-Themen 9
G Arraylist statt List - Sehr schlimm? Allgemeine Java-Themen 8
G List mit selbstdefinierten Objekten sortieren Allgemeine Java-Themen 2
M Datenstrukrue, List<Map<Integer, Map<String, . Allgemeine Java-Themen 2
F List<String> zu byte[] Allgemeine Java-Themen 7
G Map oder List mit festgelegter Reihenfolge Allgemeine Java-Themen 4
M Pendant zu list() und array() aus PHP in Java gegeben? Allgemeine Java-Themen 5
J Problem mit List Allgemeine Java-Themen 2
byte Generic Type einer List zur Laufzeit rausfinden? Allgemeine Java-Themen 4
S Generics List Allgemeine Java-Themen 3
G Inhalt einer Textdatei in eine AWT List schreiben Allgemeine Java-Themen 3
C access control list in java Allgemeine Java-Themen 7
T List.isEmpty() klappt nicht?!?!? Allgemeine Java-Themen 5
Curtis_MC Pointer mit ArrayList vergleichen Allgemeine Java-Themen 6
E RMI NULL-Pointer-Exeception wenn der RMI-Proxy eine Methode deligiert Allgemeine Java-Themen 2
T JasperReports mit Null Pointer Allgemeine Java-Themen 3
Survari Variablen Java Function Pointer Allgemeine Java-Themen 8
R Inputstream lesen mit Pointer Allgemeine Java-Themen 0
T C DLL einbinden und Pointer übergeben Allgemeine Java-Themen 13
D Pointer in Java Allgemeine Java-Themen 8
S Null Pointer Exception bei BufferedReader Allgemeine Java-Themen 4
E Queue: Wie kann hier ein null-Pointer Exception auftreten?! Allgemeine Java-Themen 11
M JNA Pointer Allgemeine Java-Themen 2
L null pointer exception Allgemeine Java-Themen 10
J Null Pointer in der compare-Methode des Comparators? Allgemeine Java-Themen 18
knuckles12 null pointer exception bei arrays Allgemeine Java-Themen 6
G Pointer und Referenzen Allgemeine Java-Themen 3
F Pointer oder Reference? Allgemeine Java-Themen 8
B Null Pointer Exception bei Canvas-objekt-Aufruf Allgemeine Java-Themen 12
G Nicht abgefangene Null-Pointer-Exception Allgemeine Java-Themen 2
S Null Pointer Exception Allgemeine Java-Themen 10
T JNI: jcharArray: warning: cast to pointer from integer of. Allgemeine Java-Themen 5
O Pointer/reference on method Allgemeine Java-Themen 10
S Variablen bei Aufruf zurücksetzen Allgemeine Java-Themen 4
M Zurücksetzen eines try-Blocks Allgemeine Java-Themen 2
C Datum zurücksetzen Allgemeine Java-Themen 9
M Swing JButton Farbe zurücksetzen Allgemeine Java-Themen 6
B Maus-Cursor zurücksetzen Allgemeine Java-Themen 4

Ähnliche Java Themen

Neue Themen


Oben