Polaczenie dwoch ArrayList w zestawienie ?

0

Hej :)
mam do zrobienia taka rzecz:
mam dwa pliki txt z danymi, w pierwszym i drugim dane typu:

  1. numer;imię;nazwisko;id
  2. id;pensja;miejscowość.
    Wczytałem je sobie do dwóch ArrayList jako obiekty - jedna ArrayList obiektów mojej klasy dla jednego pliku - gdzie w klasie mam odpowiedni konstruktor oraz gettery.
    Teraz chciałbym je wyświetlić w tabeli ale w ten sposób ze dane w tej tabeli maja być częściowo z jednej listy a częściowo z drugiej - jakby powiązane za pomocą 'id'
    Przykładowo chce uzyskać taki wydruk na tabeli:

|numer|imie|nazwisko|pensja|miejscowosc|
1|olek|kowalski|2000|warszawa|
2|jerzy|komarowski|2500|pabianice|
...

liste pracownikow ze wszystkimi danymi o nich.

I teraz moje pytanie, da sie tak zrobic zeby przy tworzeniu Jtable polaczyc dwie ArrayList i wypluc to o co mi chodzi czy musze stworzy jakby nadrzędna ArraList z tymi danymi i dopiero wtedy kombinowac z JTable ? dodam ze jestem początkujący :)

0

Da się zrobić. Wiele zależy od rozmiarów tych plików tekstowych. Jeśli są nieduże, to ja bym to rozwiązał inaczej, z jedną ArrayList al . Czytam pierwszy plik (id;imie;nazwisko), po odczytaniu wiersza dodaję do al obiekt utworzony z odczytanych id,imię nazwisko oraz domyślnej pensji (np. 0) oraz domyślnej miejscowości (np. "") . Czytam drugi plik, po odczytaniu wiersza szukam w al elementu o takim samym id, jeśli znajduję, to zamieniam pensję i miejsce zamieszkania.

0

nom pliki te maja dosc sporo danych po ok 4500 linijek :) jest to jakis sposob jednak mysle ze wolalbym ta metode z dwoma arrayList'ami i laczeniem ich poprzez wyswietlenie tyko nie wiem nawet co poczytac bo w internecie nigdzie takiego czegos nie widzialem... prosilbym o jeszcze jakies sugestie [???]

0

Z każdą tabelą związany jest TableModel - zbiór danych. U ciebie byłyby to dwie ArrayList al1 i al2. Za wyświetlane wartości odpowiada metoda getValueAt(int wiersz, int kolumna). U ciebie mogłaby ona wyglądać mniej więcej tak

public Object getValueAt(int row,int col)
{
     Osoba o=al1.get(row);
     if(col==0)
        return o.getId();
     if(col==1)
        return o.getImie();
     if(col==2)
        return o.getNazwisko();
     if(col==3)
     {
        int i=0;
        while(i<al2.size())
        {
             Pensja p=al2.get(i);
             if(p.getId()==o.getId())
             {
                 return p.getPensja();
             }
        }
     }
     // podobnie dla col==4
     return null;
}

pozdrawiam

0

ok, jest to juz cos wiecej, poczytam jeszcze i pokombinuje najwyzej wroce ;-P
dzieki!

0

Witam, sorry że odgrzewam temat, ale mam podobne pytanie. Jak odwołać się do elementów z pliku txt gdzie mam id|imie|nazwisko i wprowadzić np imie|nazwisko|id ?

Z góry thx za odpowiedź

1 użytkowników online, w tym zalogowanych: 0, gości: 1