Java List Random Item newRandomStringList(int size, String... strings)

Here you can find the source of newRandomStringList(int size, String... strings)

Description

Create a Collection containing the given size of the given strings.

License

Apache License

Parameter

Parameter Description
size The size of the collection to create.
strings The strings to use to fill the collection.

Exception

Parameter Description
IllegalArgumentException If size is less than 0 or if strings doesn't contains at least one String.

Return

A Collection containing the given number of strings taken from the strings.

Declaration

public static Collection<String> newRandomStringList(int size, String... strings) 

Method Source Code


//package com.java2s;
/*//from   w  w  w.j  av  a  2  s. c om
 * Copyright JTheque (Baptiste Wicht)
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.List;
import java.util.Random;

public class Main {
    private static final Random RANDOM = new Random();

    /**
     * Create a Collection containing the given size of the given strings. The order of strings in the collection is
     * random.
     *
     * @param size    The size of the collection to create.
     * @param strings The strings to use to fill the collection.
     *
     * @return A Collection containing the given number of strings taken from the strings.
     *
     * @throws IllegalArgumentException If size is less than 0 or if strings doesn't contains at least one String.
     */
    public static Collection<String> newRandomStringList(int size, String... strings) {
        if (size < 0) {
            throw new IllegalArgumentException("Size cannot be less than 0. ");
        }

        if (strings == null || strings.length == 0) {
            throw new IllegalArgumentException("strings must contains at least one String. ");
        }

        List<String> list = new ArrayList<String>(size);

        for (String string : strings) {
            for (int i = 0; i < size / 3; i++) {
                list.add(string);
            }
        }

        if (list.size() < size) {
            for (int i = list.size(); i < size; i++) {
                list.add(strings[i % strings.length]);
            }
        }

        Collections.shuffle(list, RANDOM);

        return list;
    }
}

Related

  1. listChooseOne(List list)
  2. makeListOfIntegersInRange(Integer size, Integer maxOfRange)
  3. makeRandomList(int arraySize, boolean unique)
  4. newRandom(int size, int price, List oldRandomList)
  5. newRandomIntegerList(int size)
  6. newRandomV1(int size, int price, List oldRandomList)
  7. nextElement(List list)
  8. nextRandomElement(final List list)
  9. pickNAtRandom(List vals, int n, long seed)