LinkedList
eMsi - 17-10-2007 00:02
LinkedList
witam mam problem z pobieraniem Obiektów z listy linkedlista wiec
mam liste LinkedList lista = new LinkedEdit();
lista zawiera kilka obiektów klasy Film przypuszajac ze lista ma 9 elementów 0,1,2,3,4,5,6,7,8 kieruje do was pytanko jak pobrac np 6 element ?
probowalem za pomoca Filmy filmy = (Filmy) lista.get(licznik); gdzie licznik to liczba integer
niestety za kazdym razem pobiera mi ostani element z listy ..
jesli znajdzie sie ktos kto pomoze z gory dziekuje pozdrawiam :)
Yacho - 17-10-2007 00:02
eMsi pisze: > witam mam problem z pobieraniem Obiektów z listy linkedlista wiec > > > mam liste > LinkedList lista = new LinkedEdit(); > > lista zawiera kilka obiektów klasy Film > przypuszajac ze lista ma 9 elementów 0,1,2,3,4,5,6,7,8 kieruje do > was pytanko jak pobrac np 6 element ? > > > probowalem za pomoca > Filmy filmy = (Filmy) lista.get(licznik); > gdzie licznik to liczba integer > > niestety za kazdym razem pobiera mi ostani element z listy .. > > > jesli znajdzie sie ktos kto pomoze z gory dziekuje pozdrawiam :) >
Powiem Ci ze w sumie zabiles mi cwieka teraz. Zawsze mnie uczono ze linkedlist jest kolekcja po ktorej mozna poruszac sie tylko sekwencyjnie za pomoca metod next() i previous() tudziez prev(). Otworzylem api i w J2SE 5 takich metod nie ma :O Wiec moze to ktos racjonalnie wytlumaczy ? :O
-- Jacek
Yacho - 17-10-2007 00:02
eMsi pisze: > witam mam problem z pobieraniem Obiektów z listy linkedlista wiec > > > mam liste > LinkedList lista = new LinkedEdit(); > > lista zawiera kilka obiektów klasy Film > przypuszajac ze lista ma 9 elementów 0,1,2,3,4,5,6,7,8 kieruje do > was pytanko jak pobrac np 6 element ? > > > probowalem za pomoca > Filmy filmy = (Filmy) lista.get(licznik); > gdzie licznik to liczba integer > > niestety za kazdym razem pobiera mi ostani element z listy .. > > > jesli znajdzie sie ktos kto pomoze z gory dziekuje pozdrawiam :) > Jedyne co przychodzi do głowy to :
LinkedList l = new LinkedList(); // tu dodawanie jakichs danych ListIterator it = l.iterator(); // i tu sobie uzywasz : it.next(); // lub it.previous();
ale tak naprawde to wszystko mozna zrobic z kazda lista wiec w sumie czy ona jest linked czy nie to srednio istotne wiec cus mi to sie kupy nie trzyma :/ -- Jacek
Kudlacz - 17-10-2007 00:02
Zegar atomowy wskazał: 2007-10-16 17:43:46, gdy eMsi napisał(a):
> mam liste > LinkedList lista = new LinkedEdit();
LinkedEdit to jakies twoje rozszerzenie LinkedList ?, moze nadpisales metode: public E get(int index) ?
Pozdrawiam. -- Kudlacz pies_kudlacz_kot@chomik_hot.pl usun zwierzyniec zanim napiszesz ...
Kudlacz - 17-10-2007 00:02
Zegar atomowy wskazał: 2007-10-16 21:54:57, gdy Yacho napisał(a):
> eMsi pisze: > > witam mam problem z pobieraniem Obiektów z listy linkedlista > > probowalem za pomoca > > Filmy filmy = (Filmy) lista.get(licznik); > > gdzie licznik to liczba integer > > niestety za kazdym razem pobiera mi ostani element z listy .. > > > Jedyne co przychodzi do głowy to : > > LinkedList l = new LinkedList(); > // tu dodawanie jakichs danych > ListIterator it = l.iterator(); > // i tu sobie uzywasz : > it.next(); > // lub > it.previous(); > > ale tak naprawde to wszystko mozna zrobic z kazda lista wiec w sumie czy > ona jest linked czy nie to srednio istotne wiec cus mi to sie kupy nie > trzyma :/
Ale po co jakies 'czary mary' robic, przeciez w LinkedList w API jest metoda: public E get(int index) i ona DZIALA zgodnie z oczekwiwaniami - pobiera element o indeksie index.
Przedpisca niech sie przyzna, czym u niego jest LinkedEdit ...
Pozdrawiam. -- Kudlacz pies_kudlacz_kot@chomik_hot.pl usun zwierzyniec zanim napiszesz ...
eMsi - 17-10-2007 00:02
On 16 Paź, 22:08, Kudlacz <pozer...@spamu.invalid> wrote: > Zegar atomowy wskazał: 2007-10-16 21:54:57, gdy Yacho napisał(a): > > > > > > > eMsi pisze: > > > witam mam problem z pobieraniem Obiektów z listy linkedlista > > > probowalem za pomoca > > > Filmy filmy = (Filmy) lista.get(licznik); > > > gdzie licznik to liczba integer > > > niestety za kazdym razem pobiera mi ostani element z listy .. > > > Jedyne co przychodzi do głowy to : > > > LinkedList l = new LinkedList(); > > // tu dodawanie jakichs danych > > ListIterator it = l.iterator(); > > // i tu sobie uzywasz : > > it.next(); > > // lub > > it.previous(); > > > ale tak naprawde to wszystko mozna zrobic z kazda lista wiec w sumie czy > > ona jest linked czy nie to srednio istotne wiec cus mi to sie kupy nie > > trzyma :/ > > Ale po co jakies 'czary mary' robic, przeciez w LinkedList w API jest > metoda: > public E get(int index) i ona DZIALA zgodnie z oczekwiwaniami - pobiera > element o indeksie index. > > Przedpisca niech sie przyzna, czym u niego jest LinkedEdit ... > > Pozdrawiam. > -- > Kudlacz > pies_kudlacz_kot@chomik_hot.pl > usun zwierzyniec zanim napiszesz ...- Ukryj cytowany tekst - > > - Pokaż cytowany tekst - no wlasnie ta metoda get nie dzial tak jak powinna probowalem juz najposciej jak moge zobacz jak mam : void pobierzObiekt(LinkedList lista, int licznik) { filmy = (Filmy)lista.get(licznik); }
probowalem nawet normalnie LinkedList lista = new LinkedList(); //tutaj mam action listnera ktory zczytuje dane z formularz i tworzy obiekt pozniej dodaje go do listy ale to nie wazne chodzi o idee Filmy f = Filmy new(); <--- utworzy mi obiektów tyle razy ile klikne lista.add(f);
i teraz jak chce wykonac polecenie pobrania
pojedynczyFilm = (Filmy) baza.pobierzObiekt(lista,2); to nie wiem moge stworzyc miliony takich obiektow ale onm i tak zawze pobiera ten ostatni :)
=?ISO-8859-2?Q?Aleksander_Str=B1czek?= - 17-10-2007 00:02
eMsi pisze: > probowalem nawet normalnie > LinkedList lista = new LinkedList(); > //tutaj mam action listnera ktory zczytuje dane z formularz i tworzy > obiekt pozniej dodaje go do listy ale to nie wazne chodzi o idee > Filmy f = Filmy new(); <--- utworzy mi obiektów tyle razy ile > klikne > lista.add(f); > > > > i teraz jak chce wykonac polecenie pobrania > > pojedynczyFilm = (Filmy) baza.pobierzObiekt(lista,2); > to nie wiem moge stworzyc miliony takich obiektow ale onm i tak zawze > pobiera ten ostatni > :)
Czy w liście na pewno są różne obiekty Filmy? Skąd wiadomo, że pobiera ostatni?
Przypuszczam, że w liście jest ten sam obiekt wiele razy i jest tylko wrażenie, że get(i) pobiera ostatni.
-- HTH, Olek
Kudlacz - 17-10-2007 00:02
Zegar atomowy wskazał: 2007-10-16 20:25:18, gdy eMsi napisał(a):
> no wlasnie ta metoda get nie dzial tak jak powinna probowalem juz > najposciej jak moge zobacz jak mam : > void pobierzObiekt(LinkedList lista, int licznik) { > filmy = (Filmy)lista.get(licznik); > } > > probowalem nawet normalnie > LinkedList lista = new LinkedList(); > //tutaj mam action listnera ktory zczytuje dane z formularz i tworzy > obiekt pozniej dodaje go do listy ale to nie wazne chodzi o idee > Filmy f = Filmy new(); <--- utworzy mi obiektów tyle razy ile > klikne > lista.add(f); > > i teraz jak chce wykonac polecenie pobrania > > pojedynczyFilm = (Filmy) baza.pobierzObiekt(lista,2); > to nie wiem moge stworzyc miliony takich obiektow ale onm i tak zawze > pobiera ten ostatni > :)
Dobrze rozumiem, ze masz:
void pobierzObiekt(LinkedList lista, int licznik) { filmy = (Filmy)lista.get(licznik); } Czyzby filmy byla zmienna klasowa ?, w takim ukladzie skoro piszesz jeszcze o jakims listenerze moze ciagle ci nadpisuje ta zmienna ?. Nie prosciej (i bardziej zgodnie ze sztuka) zrobic (pozostajac przy tym jak to masz) w ten sposob?:
Filmy pobierzObiekt(LinkedList lista, int licznik) { return (Filmy)lista.get(licznik); }
Ma to wieksze szanse dzialania ... Problem nie jest z LinkedList, masz cos dziwnego w kodzie ...
Zrob test (pisane z palca, moze miec drobne bledy)
LinkedList list = new LinkedList(); list.add("abc"); list.add("aaa"); list.add("qqq"); System.out.println(list.get(1));
Nie ma innej mozliwosci, zeby nie zwrocilo "aaa".
Pozdrawiam. -- Kudlacz pies_kudlacz_kot@chomik_hot.pl usun zwierzyniec zanim napiszesz ...
eMsi - 17-10-2007 00:02
ok juz mam zrobilem to z tym Iteratorem dzieki za pomoc import java.util.LinkedList; import java.util.ListIterator; public class test { int i;
public static void main (String args[] ){
test k = new test();
LinkedList l = new LinkedList(); for(int i =0;i<10;i++) { test r = new test(); r.i=i; l.add(r); }
ListIterator it = l.listIterator(); System.out.println(it.next()); System.out.println(it.next()); System.out.println(it.next()); System.out.println(it.next()); System.out.println(it.next());
} }
Yacho - 17-10-2007 00:02
eMsi pisze: > ok juz mam > zrobilem to z tym Iteratorem > dzieki za pomoc > import java.util.LinkedList; > import java.util.ListIterator; > public class test { > int i; > > public static void main (String args[] ){ > > test k = new test(); > > LinkedList l = new LinkedList(); > for(int i =0;i<10;i++) > { test r = new test(); > r.i=i; > l.add(r); > } > > ListIterator it = l.listIterator(); > System.out.println(it.next()); > System.out.println(it.next()); > System.out.println(it.next()); > System.out.println(it.next()); > System.out.println(it.next()); > > > } > } > >
ale mogles dla przyzwoitosci choc petli uzyc :D
-- Jacek
Maciej Piechotka - 17-10-2007 00:02
On Tue, 16 Oct 2007 17:43:46 +0000, eMsi wrote:
> witam mam problem z pobieraniem Obiektów z listy linkedlista wiec > > > mam liste > LinkedList lista = new LinkedEdit(); >
LinkedList to implementacja. Powinno się raczej używać interfejsów (List)
> lista zawiera kilka obiektów klasy Film > przypuszajac ze lista ma 9 elementów 0,1,2,3,4,5,6,7,8 kieruje do > was pytanko jak pobrac np 6 element ? > > > probowalem za pomoca > Filmy filmy = (Filmy) lista.get(licznik); gdzie licznik to liczba > integer > > niestety za kazdym razem pobiera mi ostani element z listy .. > > > jesli znajdzie sie ktos kto pomoze z gory dziekuje pozdrawiam :)
Nie masz problemów z implementacją LinkedEdit?
Pozdrawiam -- I've probably left my head... somewhere. Please wait untill I find it. Homepage (pl_PL): http://uzytkownik.jogger.pl/ (GNU/)Linux User: #425935 (see http://counter.li.org/)
=?ISO-8859-2?Q?Aleksander_Str=B1czek?= - 17-10-2007 00:02
eMsi pisze: > ok juz mam > zrobilem to z tym Iteratorem > dzieki za pomoc > import java.util.LinkedList; > import java.util.ListIterator; > public class test { > int i; > > public static void main (String args[] ){ > > test k = new test(); > > LinkedList l = new LinkedList(); > for(int i =0;i<10;i++) > { test r = new test(); > r.i=i; > l.add(r); > } > > ListIterator it = l.listIterator(); > System.out.println(it.next()); > System.out.println(it.next()); > System.out.println(it.next()); > System.out.println(it.next()); > System.out.println(it.next()); > > > } > } > a System.out.println(l.get(0)); System.out.println(l.get(1)); System.out.println(l.get(2)); System.out.println(l.get(3)); System.out.println(l.get(4));
zamiast System.out.println(it.next()); [...] dało inne wyniki?
-- Pozdrawiam, Olek
artur.zabronski@gmail.com - 17-10-2007 00:02
On 16 Paź, 12:38, Yacho <yacho1984@nospam_gmail[dot.]com> wrote: > eMsi pisze: > > > > > witam mam problem z pobieraniem Obiektów z listy linkedlista wiec > > > mam liste > > LinkedList lista = new LinkedEdit(); > > > lista zawiera kilka obiektów klasy Film > > przypuszajac ze lista ma 9 elementów 0,1,2,3,4,5,6,7,8 kieruje do > > was pytanko jak pobrac np 6 element ? > > > probowalem za pomoca > > Filmy filmy = (Filmy) lista.get(licznik); > > gdzie licznik to liczba integer > > > niestety za kazdym razem pobiera mi ostani element z listy .. > > > jesli znajdzie sie ktos kto pomoze z gory dziekuje pozdrawiam :) > > Powiem Ci ze w sumie zabiles mi cwieka teraz. Zawsze mnie uczono ze > linkedlist jest kolekcja po ktorej mozna poruszac sie tylko sekwencyjnie > za pomoca metod next() i previous() tudziez prev(). Otworzylem api i w > J2SE 5 takich metod nie ma :O > Wiec moze to ktos racjonalnie wytlumaczy ? :O > No bo mozna i tak ta implementacja to zapewne robi :-) Zapewne jest to cos w stylu: public E get(int index) { Item item = firstItem; if (index >= count) { throw new ...; } for (int i = 0; i < index; i++) { if (i == index) { return elem; } item = item.next; } }
-- Pozdrawiam, Artur
ciukes - 18-10-2007 00:04
eMsi wrote: > witam mam problem z pobieraniem Obiektów z listy linkedlista wiec > > > mam liste > LinkedList lista = new LinkedEdit(); Nie ma mowy zeby LinkedList bylo zepsute:)
Uruchom u siebie ponizszy kod. http://pastebin.com/m2eb61067 Wynik ktory zobaczysz na ekranie to 4
Moja ciekawosc wzbudza typ LinkedEdit... co to takie?
Pozdrawiam, ciukes.
eMsi - 18-10-2007 00:04
On 16 Paź, 22:00, Kudlacz <pozer...@spamu.invalid> wrote: > Zegar atomowy wskazał: 2007-10-16 17:43:46, gdy eMsi napisał(a): > > > mam liste > > LinkedList lista = new LinkedEdit(); > > LinkedEdit to jakies twoje rozszerzenie LinkedList ?, moze nadpisales > metode: > public E get(int index) ? > > Pozdrawiam. > -- > Kudlacz > pies_kudlacz_kot@chomik_hot.pl > usun zwierzyniec zanim napiszesz ...
dobra juz dziala mi metoda get(); poprostu zamiast tworzyc obiekt po nacisnieciu klawisza ja utworzylem go wyżej ( tzn w metodzie main) a metoda oblugujaca przycik zmianial tylko skladowe obiektu Filmy :) no ale na bledach czlowiek sie uczy :)
eMsi - 18-10-2007 00:04
On 16 Paź, 22:50, Aleksander Strączek <astrac...@gmail.com> wrote: > eMsi pisze: > > > > > > > probowalem nawet normalnie > > LinkedList lista = new LinkedList(); > > //tutaj mam action listnera ktory zczytuje dane z formularz i tworzy > > obiekt pozniej dodaje go do listy ale to nie wazne chodzi o idee > > Filmy f = Filmy new(); <--- utworzy mi obiektów tyle razy ile > > klikne > > lista.add(f); > > > i teraz jak chce wykonac polecenie pobrania > > > pojedynczyFilm = (Filmy) baza.pobierzObiekt(lista,2); > > to nie wiem moge stworzyc miliony takich obiektow ale onm i tak zawze > > pobiera ten ostatni > > :) > > Czy w liście na pewno są różne obiekty Filmy? > Skąd wiadomo, że pobiera ostatni? > > Przypuszczam, że w liście jest ten sam obiekt wiele razy i jest tylko > wrażenie, że get(i) pobiera ostatni. > > -- > HTH, Olek- Ukryj cytowany tekst - > > - Pokaż cytowany tekst -
Miales racje :) w liscie byl caly czas ten sam obiekt :) pozdrawiam
eMsi - 18-10-2007 00:04
On 17 Paź, 10:13, ciukes <ciu...@somewhere.com> wrote: > eMsi wrote: > > witam mam problem z pobieraniem Obiektów z listy linkedlista wiec > > > mam liste > > LinkedList lista = new LinkedEdit(); > > Nie ma mowy zeby LinkedList bylo zepsute:) > > Uruchom u siebie ponizszy kod.http://pastebin.com/m2eb61067 > Wynik ktory zobaczysz na ekranie to 4 > > Moja ciekawosc wzbudza typ LinkedEdit... co to takie? > > Pozdrawiam, > ciukes.
http://java.sun.com/j2se/1.4.2/docs/...inkedList.html milego czytania
Maciej Piechotka - 18-10-2007 00:04
On Wed, 17 Oct 2007 01:46:04 -0700, eMsi wrote:
> On 17 Paź, 10:13, ciukes <ciu...@somewhere.com> wrote: >> eMsi wrote: >> > witam mam problem z pobieraniem Obiektów z listy linkedlista wiec >> >> > mam liste >> > LinkedList lista = new LinkedEdit(); >> >> Nie ma mowy zeby LinkedList bylo zepsute:) >> >> Uruchom u siebie ponizszy kod.http://pastebin.com/m2eb61067 Wynik ktory >> zobaczysz na ekranie to 4 >> >> Moja ciekawosc wzbudza typ LinkedEdit... co to takie? >> >> Pozdrawiam, >> ciukes. > > http://java.sun.com/j2se/1.4.2/docs/...inkedList.html milego > czytania
Ani słowa na temat LinkedEdit. Na temat ewentualnego zepsucia get również.
Pozdrawiam -- I've probably left my head... somewhere. Please wait untill I find it. Homepage (pl_PL): http://uzytkownik.jogger.pl/ (GNU/)Linux User: #425935 (see http://counter.li.org/)
ciukes - 18-10-2007 00:04
> http://java.sun.com/j2se/1.4.2/docs/...inkedList.html > milego czytania > nie rozumiem twojej odpowiedzi. Znam kontrakt na dzialanie LinkedList. Czy moglbys rozwinac swoja bardzo skapa mysl?
Pozdrawiam, ciukes.
zanotowane.pldoc.pisz.plpdf.pisz.pleffulla.pev.pl
|
Program do czytania profili =?ISO-8859-2?Q?kolor=F3w?=
Photoshop + problem z wydrukiem
Fotografia turystyczna
PKD freelancer
AS
[mysql] wyswietlenie drogi do galezi drzewa
Tablet i CS2
SiteGrinder
[corel] polecenie offset
flash CS3
zanotowane.pldoc.pisz.plpdf.pisz.pldirtyboys.xlx.pl
Cytat
Decede mihi sole - nie zasłaniaj mi słonca. Gdy kogoś kochasz, jesteś jak stworzyciel świata - na cokolwiek spojrzysz, nabiera to kształtu, wypełnia się barwą, światłem. Powietrze przytula się do ciebie, choćby był mróz, a ty masz w sobie tyle radości, że musisz ją rozdawać wokoło, bo się w tobie nie mieści Hoc fac - tak czyń. A tergo - od tyłu; z tyłu. I czarne włosy posiwieją. Safona |
|