Create a Collection containing the given size of the given strings. - Java Collection Framework

Java examples for Collection Framework:Collection

Description

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

Demo Code

/*//from   w  ww.ja v 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.
 */
//package com.java2s;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.List;
import java.util.Random;

public class Main {
    public static void main(String[] argv) throws Exception {
        int size = 2;
        String strings = "java2s.com";
        System.out.println(newRandomStringList(size, strings));
    }

    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 Tutorials