• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Dodawanie tablic do listy JAVA

Object Storage Arubacloud
0 głosów
1,398 wizyt
pytanie zadane 16 lipca 2017 w Java przez juicy186 Nowicjusz (150 p.)

Hej, mam pytanie pisze sobie Hangmana a raczej próbuję to zrobić i tak utworzyłam sobie trzy tablice z każdej losuje się słpwo wszystko super tylko teraz mam taki problem: gracz wybiera sobie kategorie i żeby odnieść się do konkretnej tablicy powinnam je wrzucić w listę i zindeksować? Właśnie nie do końca wiem jak to zrobić.

import java.util.ArrayList;
import java.util.Scanner;

public class Main {

    public static void main(String[] args) {

        String[] food = {"frytki", "lody", "paluszki", "pizza", "naleśniki", "croissant", "bekon", "jabłecznik", "pączek", "jabłecznik", "hamburger", "żurek", "pomidorowa", "pierogi", "dżem", "kasza", "bigos", "pigwa", "rzodkiewka", "wafelek"};
        String word1 = food[(int) (Math.random() * food.length)];
        String[] animals = {"kot", "pies", "królik", "rybka", "chomik", "koń", "słoń", "żyrafa", "sarna", "niedźwiedź", "żyrafa", "delfin, hiena, wiewiórka, wilk, hiena, kaczka, panda, szczur, papuga"};
        String word2 = animals[(int) (Math.random() * animals.length)];
        String[] plants = {"dąb", "hiacynt", "wierzba", "trwa", "jabłoń", "śliwka", "pszenica", "kukurydza", "papryka", "ogórek", "cytryna", "palma", "bratek", "kaktus", "mak", "tulipan", "róża", "mlecz", "truskawka", "pomidor"};
        String word3 = plants[(int) (Math.random() * plants.length)];

        ArrayList List = new ArrayList();
        List.add(food);
        List.add(animals);
        List.add(plants);
        



        System.out.println("Wybierz kategorie: 1 - jedzenie, 2 - zwierzeta, 3 - rośliny.");
        Scanner Number = new Scanner(System.in);
        int SelectedNumber = Number.nextInt();
        System.out.println("Wczytana liczba, to: " + SelectedNumber);

 

2 odpowiedzi

+2 głosów
odpowiedź 16 lipca 2017 przez KubenQPL Maniak (62,820 p.)
wybrane 16 lipca 2017 przez juicy186
 
Najlepsza

Najlepiej dodaj do Hashmap'y będziesz mogła mieć klucz (indeks) typu String to sobie nazwiesz tymi kategoriami.

HashMap<String, String[]> map = new HashMap<>();
map.put("food", food);
map.put("animals",animals);
...

a żeby wyciągnąć daną tablicę:

map.get("animals"); //to zwraca tablicę animals

a jeśli jednak wolisz w liście to:

ArrayList<String[]> list = new ArrayList<>();
list.add(food);
list.add(animals);
...
list.get(0); //zwraca tablicę food
list.get(1); // zwraca tablicę animals

 

komentarz 16 lipca 2017 przez juicy186 Nowicjusz (150 p.)
ooo Bardzo dziękuje :)
0 głosów
odpowiedź 16 lipca 2017 przez kosaa Stary wyjadacz (14,130 p.)

jesli chodzi tylko o losowanie z wybranej kategorii to wybral bym takie rozwiazanie

switch (kategoria) {
    case kat1:
        // losuj z tablicy 1
    break;
    case kat2:
        // losuj z tablicy 2
    break;
}

 

komentarz 16 lipca 2017 przez juicy186 Nowicjusz (150 p.)
edycja 16 lipca 2017 przez juicy186

dlaczego nie ?


if (SelectedNumber == 1) {
            System.out.println(word1);
        }
        if (SelectedNumber == 2) {
            System.out.println(word2);
        }
        if (SelectedNumber == 3) {
            System.out.println(word3);
        }
            else {
                System.out.println("Chyba wybrałeś złą liczbę? ");
            }

 

 

komentarz 17 lipca 2017 przez kosaa Stary wyjadacz (14,130 p.)
mogą być i IF'y, Twoja decyzja, zmienil bym tylko na ELSE IF aby nie sprawdzac wielokrotnie tego samego warunku
komentarz 17 lipca 2017 przez Wiciorny Ekspert (269,710 p.)
bo "if" są wolniejsze, więcej pamięci zjadzasz- program  wykorzystuje więcej pamięci obliczeniowej- co powoduje jego dłuższe działanie. Dodatkowo kod jest mniej czytelny i zgrabny.

Więc dobrą praktyką bedzie stosowanie stwitcha, z drugiej strony nie wszystkie warunki tak łatwo uwzględnisz w if else ' bo mogą byc wyjątki' którę np dla warunków beda stanowić błąd, natomiast switch z natury rzeczy je pominie i nie wysypie się program
komentarz 17 lipca 2017 przez juicy186 Nowicjusz (150 p.)
dzięki :) będę pamiętała na przyszłość :)

Podobne pytania

0 głosów
0 odpowiedzi 1,658 wizyt
pytanie zadane 13 stycznia 2018 w Java przez Kasia Nowicjusz (230 p.)
0 głosów
2 odpowiedzi 771 wizyt
pytanie zadane 14 listopada 2016 w Java przez Patryk Rafał Bywalec (2,700 p.)
0 głosów
1 odpowiedź 183 wizyt
pytanie zadane 13 lutego 2021 w Java przez Lulex Użytkownik (820 p.)

92,550 zapytań

141,394 odpowiedzi

319,522 komentarzy

61,935 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...