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

Dodawanie tablic do listy JAVA

Ultraszybki serwer VPS NVMe START
0 głosów
70 wizyt
pytanie zadane 16 lipca 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 przez KubenQPL Nałogowiec (43,920 p.)
wybrane 16 lipca 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 przez juicy186 Nowicjusz (150 p.)
ooo Bardzo dziękuje :)
0 głosów
odpowiedź 16 lipca przez kosaa Stary wyjadacz (10,790 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 przez juicy186 Nowicjusz (150 p.)
edycja 16 lipca 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 przez kosaa Stary wyjadacz (10,790 p.)
mogą być i IF'y, Twoja decyzja, zmienil bym tylko na ELSE IF aby nie sprawdzac wielokrotnie tego samego warunku
komentarz 17 lipca przez Wiciorny Pasjonat (24,160 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 przez juicy186 Nowicjusz (150 p.)
dzięki :) będę pamiętała na przyszłość :)

Podobne pytania

0 głosów
2 odpowiedzi 123 wizyt
pytanie zadane 14 listopada 2016 w Java przez Patryk Rafał Bywalec (2,420 p.)
0 głosów
1 odpowiedź 52 wizyt
pytanie zadane 31 stycznia w Java przez Jonbi2 Dyskutant (8,260 p.)
0 głosów
0 odpowiedzi 71 wizyt
pytanie zadane 21 stycznia w Java przez nemezisso Użytkownik (860 p.)

41,300 zapytań

80,251 odpowiedzi

158,749 komentarzy

19,719 pasjonatów

Przeglądających: 281
Pasjonatów: 19 Gości: 262

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.

...