简体   繁体   English

检索ArrayList中的随机元素

[英]Retrieving random element in ArrayList

public class guessMovies {
private Random randomGenerator;
public static void main(String[] args) throws IOException {

    String MovieList = null;

    try (BufferedReader br = new BufferedReader(new FileReader("Movielist.txt"))) {

        while ((MovieList = br.readLine()) != null) {
            ArrayList<String> MovieNames = new ArrayList<String>();
            MovieNames.addAll(Arrays.asList(MovieList));
            //System.out.println(MovieList);
            System.out.println(MovieNames);

            Random r = new Random();
            System.out.print(MovieNames.get(r.nextInt(MovieNames.size)));
        }
    }

    catch(FileNotFoundException exception) {
        System.out.println("I cannot find your file");
    }
    //pick random movie
}

Can somebody guide me on how to pick a random movie title in the Movielist file, I can print out the whole list, but I'm not sure on how to pick one of them randomly.有人可以指导我如何在 Movielist 文件中随机选择电影标题,我可以打印出整个列表,但我不确定如何随机选择其中一个。

您应该实例化一个 ArrayList,读取所有电影标题并将它们添加到列表中,然后使用 Random.nextInt() 选择一个并打印它。

Try something like this:尝试这样的事情:

public class guessMovies {

    public static void main(String[] args) throws IOException {

        String MovieList;
        ArrayList<String> MovieNames = new ArrayList<>();

        try (BufferedReader br = new BufferedReader(new FileReader("Movielist.txt"))) {

            while ((MovieList = br.readLine()) != null) {
                MovieNames.add(MovieList);
            }

            for(String movieName: MovieNames){
                System.out.println(movieName);
            }

            Random r = new Random();

System.out.println(MovieNames.get(r.nextInt(MovieNames.size())));
        }

        catch(FileNotFoundException exception) {
            System.out.println("I cannot find your file");
        }
        //pick random movie
    }
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM