Java: заполнение массива случайными числами без дубликатов [дубликат]

Сначала вам нужно выбрать библиотеку реализации для этого.

Java API для обработки JSON (JSR 353) предоставляет переносные API для анализа, генерации, преобразования и запроса JSON с использованием объектной модели и потоковой передачи API-интерфейсы.

Эталонная реализация находится здесь: https://jsonp.java.net/

Здесь вы можете найти список реализаций JSR 353:

Что такое API, который реализует JSR-353 (JSON)

И чтобы помочь вам решить ... Я тоже нашел эту статью:

http://blog.takipi.com/the-ultimate-json-library-json-simple-vs-gson-vs-jackson-vs-json/

Если вы идете на Джексона, вот хорошая статья о конверсии между JSON в / из Java с помощью Jackson: https://www.mkyong.com/java/how-to-convert-java-object- to-from-json-jackson /

Надеюсь, что это поможет!

0
задан kanye east 11 March 2014 в 00:37
поделиться

3 ответа

String[] names = ...;
Collections.shuffle(Arrays.asList(names));
// done

Обратите внимание, что Arrays.asList() возвращает изменяемый (но фиксированный) список, поддерживаемый массивом, а не копию массива. Таким образом, массив будет перетасован.

4
ответ дан JB Nizet 24 August 2018 в 06:41
поделиться

Вы можете использовать класс Collections с методом shuffle. Документация доступна здесь .

Пример

int[] values = {1,2,3,4,5};

List<Integer> valuesList = Arrays.asList(values);

Collections.shuffle(valuesList);

// valuesList is shuffled.
1
ответ дан christopher 24 August 2018 в 06:41
поделиться

Просто используйте Shuffle Fisher-Yates (алгоритм Knuth P):

private Random rand = new Random();

public static void shuffle(String[] array) { // mix-up the array
    for (int i = array.length - 1; i > 0; --i) {
        int j = rand.nextInt(i + 1);
        String temp = array[i];
        array[i] = array[j];
        array[j] = temp;
    }
}

См .:

  1. Knuth, D. 1969, 1998: Seminumerical Algorithms 1st & amp ; 3-е изд. Искусство серии компьютерного программирования, том 2, с. 125.
  2. Фишер, Рональд А .; Йейтс, Франк (1948) [1938]. Статистические таблицы для биологических, сельскохозяйственных и медицинских исследований (3-е изд.). Лондон: Oliver & amp; Бойд. стр. 26-27.
  3. http://en.wikipedia.org/wiki/Fisher%E2%80%93Yates_shuffle
  4. https : //stackoverflow.com/a/1520212/636009
2
ответ дан Community 24 August 2018 в 06:41
поделиться
Другие вопросы по тегам:

Похожие вопросы: