Elektroda.pl
Elektroda.pl
X
Filament
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Tablice w java (Różne typy danych)

daniel151577 12 Lut 2018 21:20 522 10
  • #1 12 Lut 2018 21:20
    daniel151577
    Poziom 6  

    Witam
    Nie wiem jak stworzyc tablice w javie o różnych typach danych :(
    Wiem że w teori się nie da na ale może jest jakiś sposób,
    Potrzebuję coś takiego:
    String[][] tablica = {
    {"tekst",1},
    {"teks",2}
    };
    No tak jak w przykładzie potrzebuje w takiej tablicy różne dane jak to zrobić?
    Z góry dzieki[/code]

    0 10
  • Filament
  • Pomocny post
    #2 12 Lut 2018 21:44
    JacekCz
    Poziom 35  

    Object[]
    tablica ci przyjmie wszystkie typy (łącznie z obiektowymi wersjami typów prostych, Integer, Boolean itd)

    Jak tablicę pasuje indeksowac nie pozycją (małym integerem) tylko dowolnym kluczem, to jest Map

    0
  • Filament
  • #3 12 Lut 2018 21:46
    daniel151577
    Poziom 6  

    Wielkie dzięki wszystko już wiem.
    Temat do zamknięcia!
    Edit
    Jeszcze nie

    0
  • #4 12 Lut 2018 23:04
    JacekCz
    Poziom 35  

    Noooo nie wiem, czy wszystko wiesz, jak będziesz chciał pobierać dane z takiej tablicy, musisz wiedzieć, albo mieć metodę określić, jak rzeczywisty typ jest tam schowany. Tablica Object[] ma wiele zalet (jest uniwersalna) ale poważne wady: np nie jest type-safe

    0
  • #5 12 Lut 2018 23:05
    gaskoin
    Poziom 38  

    Nie widzę żadnych zalet takiej tablicy :)

    0
  • #6 13 Lut 2018 06:35
    daniel151577
    Poziom 6  

    JacekCz napisał:
    Noooo nie wiem, czy wszystko wiesz, jak będziesz chciał pobierać dane z takiej tablicy, musisz wiedzieć, albo mieć metodę określić, jak rzeczywisty typ jest tam schowany. Tablica Object[] ma wiele zalet (jest uniwersalna) ale poważne wady: np nie jest type-safe

    No tak właśnie się zorientowałem ze to nie takie proste...
    Jak moge odczytać dane z takiej tablicy
    Object[][] tablica = {
    {12,”test”},
    {45,”tekst”}
    };
    Przykład miłe widziany ;)

    0
  • #7 13 Lut 2018 08:34
    gaskoin
    Poziom 38  

    Może powiedz lepiej co próbujesz osiągnąć to podpowiemy inne rozwiązanie. Takie tablice niosą ze sobą masę problemów. Na jeden natrafiłeś na dzień dobry.

    Żeby to odczytać, to albo musisz znać konwencję zapisu, albo zapisać dodatkowo gdzieś typ i wg niego odczytywać, np przez refleksję, albo drabinę ifów co wprowadza kolejne zwały problemów.

    0
  • #8 13 Lut 2018 08:44
    daniel151577
    Poziom 6  

    gaskoin napisał:
    Może powiedz lepiej co próbujesz osiągnąć to podpowiemy inne rozwiązanie. Takie tablice niosą ze sobą masę problemów. Na jeden natrafiłeś na dzień dobry.

    Żeby to odczytać, to albo musisz znać konwencję zapisu, albo zapisać dodatkowo gdzieś typ i wg niego odczytywać, np przez refleksję, albo drabinę ifów co wprowadza kolejne zwały problemów.

    Pisze bota na serwer teamspeak i chce aby były edytowane kanały ale nie jeden a kilka.
    No i liczba to id kanału a tekst to nazwa kanału. I potrzebuje zrobić to tak ze dodając kolejne wpisy do tablicy edytowane są kolejne kanały.

    0
  • #9 13 Lut 2018 09:18
    JacekCz
    Poziom 35  

    ja twoje zagadnienie rozumiem jako tablica klas (dwuelementowych). Wtedy jest type-safe itd....

    Generalnie powieneś mieć w głowie "algorytm": jak jest powtarzalny zestaw danych (o róznych typach), to nie implementujemy tego tablicą (drugi wymiar u Ciebie), tylko prostą klasą

    0
  • #10 13 Lut 2018 09:19
    daniel151577
    Poziom 6  

    JacekCz napisał:
    ja twoje zagadnienie rozumiem jako tablica klas (dwuelementowych). Wtedy jest type-safe itd....

    Generalnie powieneś mieć w głowie "algorytm": jak jest powtarzalny zestaw danych (o róznych typach), to nie implementujemy tego tablicą (drugi wymiar u Ciebie), tylko prostą klasą

    Ale jaka?
    Taki kod bym chciał
    Code:

    Object[][] tablica = {
    {12,”test”},
    {45,”tekst”}
    };
    for(Object[] tabela : tablica)
    {
    edycjakanalu(tabela[0],tabela[1]);
    };

    I teraz dodając kolejne wpisy do tablic edytowane maja być kolejne kanały
    Myśle ze jasno wytłumaczyłem :)

    0
  • #11 13 Lut 2018 09:41
    JacekCz
    Poziom 35  

    W zarysie ....

    Kod: java
    Zaloguj się, aby zobaczyć kod


    Dla mnie to elementarz javy, bez tego to utrwalasz złe nawyki i nie uczysz się rzeczywistego języka

    0