Ad

How To Get A Random Value From A String Array Without Repetition?

How to get a random value from a string array in android without repetition?

I have array in String.xml file as below -

    <string-array name="msg">
    <item>Cow</item>
    <item>Pig</item>
    <item>Bird</item>
    <item>Sheep</item>
</string-array>

I am selecting random string by using following code -

String[] array = Objects.requireNonNull(context).getResources().getStringArray(R.array.msg);
String Msg = array[new Random().nextInt(array.length)];

Can anyone help me please? Thanks is advance...!

Ad

Answer

try this -

array = Objects.requireNonNull(context).getResources().getStringArray(R.array.msg);
    //String msg = array[new Random().nextInt(array.length)];

    LinkedList<String> myList = new LinkedList<String>();

    for (String i : array)
        myList.add(i);
    Collections.shuffle(myList);

    for (int i = 0; i < myList.size(); i++) {
       String msg=myList.get(i);
    }
Ad
source: stackoverflow.com
Ad