打印随机密钥后跟特定值? [重复]

问题描述 投票:4回答:1

这个问题在这里已有答案:

我是Java的新手,为了更多地了解我正在尝试制作一款游戏,你可以从一首歌中随机抒情,然后是歌曲名称和艺术家。

这很容易,但是我希望歌词是随机的,然后使用单独的方法打印艺术家和歌曲标题。我的问题是,我不确定如何从打印一个随机字符串到打印特定答案。

我目前在一个散列图中有歌词和答案,歌词作为键和答案作为值,并且可以通过使用此方法将它们变成arraylist来打印随机键

public void randomLyrics()
    {
        ArrayList<String> lyricKey = new ArrayList<String>(lyrics.keySet());
        if(lyrics.size() > 0) {
            Random rand = new Random();
            int index = rand.nextInt(lyrics.size());
            System.out.println(lyricKey.get(rand.nextInt(lyrics.size())));
        }
    }

但是我很确定这不是正确的方法,而且我不确定如何单独打印答案。

任何帮助将非常感激。

另外只是为了澄清,我想调用一个方法(randomLyrics),它会显示一个随机的歌词,例如“那是我在角落,这是我在聚光灯下”,然后调用一个单独的方法(答案)然后打印“失去”我的宗教 - REM“

非常感谢

java random hashmap key
1个回答
0
投票

这是完整的示例运行此程序多次,您将获得一些随机值: -

import java.util.ArrayList;
import java.util.HashMap;
import java.util.Random;

public class HashM {

    public static void main(String[] args) {
        HashMap<String, String> lyrics = new HashMap<>();
        // KEY :- Lyrics AND Value is Album Name
        lyrics.put("that's me in the corner, that's me in the spotlight", "Losing My Religion - R.E.M.");
        lyrics.put("I will try not to breathe I can hold my head still with my hands at my knees",
                "Automatic for the People");
        lyrics.put("Eu não aturo mais Sou um trator", "É Duda Brack");

        randomLyrics(lyrics);

    }

    public static void randomLyrics(HashMap<String, String> lyrics) {
        ArrayList<String> lyricKey = new ArrayList<String>(lyrics.keySet());
        if (lyrics.size() > 0) {
            Random rand = new Random();
            int index = rand.nextInt(lyrics.size());
            System.out.println("###::####Your Random Number is :-" + rand.nextInt(lyrics.size()));
            System.out.println(lyricKey.get(rand.nextInt(lyrics.size())));
        }
    }

}
© www.soinside.com 2019 - 2024. All rights reserved.