How to pick a random item from a arraylist in java?

13,054

Solution 1

Simple, put your code in a method like this

Random rand; // Global variable

public static int randomItem(Arraylist<Integer> mylist) {
    rand = new Random(); 
    Integer randomInt = lista.get(rand.nextInt(lista.size()));
    return randomInt;
}

and call it like this in your main method;

int selected = randomItem(mylist);
System.out.println(selected);

Solution 2

You can make a method that picks a random item from any list like this:

static Random rand = new Random();
static <T> T getRandomItem(List<T> list) {
    return list.get(rand.nextInt(list.size()));
}

Creating a new Random object each time you want a random number is a bad practice. This only creates one and re-uses it.

Also, you can call it with any type of list - not just ArrayList<Integer>s.

Share:
13,054
Adam
Author by

Adam

Hi, my name is Adam.

Updated on June 13, 2022

Comments

  • Adam
    Adam almost 2 years

    How can I pick a random item from a list of items in a array list, for example;

    ArrayList<Integer>  mylist= new ArrayList<Integer>();
    mylist.add(19);
    mylist.add(154);
    mylist.add(112);
    mylist.add(15);
    mylist.add(112);
    

    Currently, I am doing this but because I need to use this over and over again, is there a shorter way of do this?

    Random random = new Random();
    Integer randomInt = lista.get(rand.nextInt(lista.size()));