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

Dodawanie tablic do listy JAVA

VPS Starter Arubacloud
0 głosów
1,386 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,120 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,617 wizyt
pytanie zadane 13 stycznia 2018 w Java przez Kasia Nowicjusz (230 p.)
0 głosów
2 odpowiedzi 763 wizyt
pytanie zadane 14 listopada 2016 w Java przez Patryk Rafał Bywalec (2,700 p.)
0 głosów
1 odpowiedź 179 wizyt
pytanie zadane 13 lutego 2021 w Java przez Lulex Użytkownik (820 p.)

92,451 zapytań

141,261 odpowiedzi

319,073 komentarzy

61,853 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

Akademia Sekuraka 2024 zapewnia dostęp do minimum 15 szkoleń online z bezpieczeństwa IT oraz dostęp także do materiałów z edycji Sekurak Academy z roku 2023!

Przy zakupie możecie skorzystać z kodu: pasja-akademia - użyjcie go w koszyku, a uzyskacie rabat -30% na bilety w wersji "Standard"! Więcej informacji na temat akademii 2024 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!

...