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

Dodawanie tablic do listy JAVA

0 głosów
65 wizyt
pytanie zadane 5 dni temu 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ź 5 dni temu przez KubenQPL Nałogowiec (39,140 p.)
wybrane 5 dni temu 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 5 dni temu przez juicy186 Nowicjusz (150 p.)
ooo Bardzo dziękuje :)
0 głosów
odpowiedź 5 dni temu przez kosaa Mądrala (7,050 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 5 dni temu przez juicy186 Nowicjusz (150 p.)
edycja 5 dni temu 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 5 dni temu przez kosaa Mądrala (7,050 p.)
mogą być i IF'y, Twoja decyzja, zmienil bym tylko na ELSE IF aby nie sprawdzac wielokrotnie tego samego warunku
komentarz 4 dni temu przez Wiciorny Pasjonat (20,600 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 4 dni temu przez juicy186 Nowicjusz (150 p.)
dzięki :) będę pamiętała na przyszłość :)

Podobne pytania

0 głosów
2 odpowiedzi 109 wizyt
pytanie zadane 14 listopada 2016 w Java przez Patryk Rafał Bywalec (2,340 p.)
0 głosów
1 odpowiedź 50 wizyt
pytanie zadane 31 stycznia w Java przez Jonbi2 Dyskutant (8,030 p.)
0 głosów
0 odpowiedzi 61 wizyt
pytanie zadane 21 stycznia w Java przez nemezisso Użytkownik (860 p.)

36,094 zapytań

72,754 odpowiedzi

140,029 komentarzy

16,786 pasjonatów

Przeglądających: 191
Pasjonatów: 22 Gości: 169

Motyw:

Akcja Pajacyk

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

Oto dwie polecane książki warte uwagi. Pełną listę znajdziesz tutaj.

...