Код: Выделить всё
import java.util.List;
import java.util.Random;
public class Main {
public static void main(String[] args) {
List list = List.of("1", "2", "3", "4", "5", "6", "7", "8", "9", "10");
// Percentage of elements to retain (between 0 and 100)
int percentageToRetain = 30; // Change this value to adjust the percentage
Random random = new Random();
List result = list.stream()
.filter(s -> random.nextInt(100) < percentageToRetain)
.toList();
System.out.println(result);
}
}
Например: при настройке таргетинга на 30% списка из 10 элементов я могу получить 2 элемента (20%) за один прогон и 4 элемента (40%) за другой.
Мой вопрос:
Как я могу изменить свой код для последовательного сохранения именно указанного процента элементов из списка? В идеале мне хотелось бы решение, которое:
- Сохраняет точно процентное значение для сохранения процентов элементов (при необходимости округление в меньшую сторону)
- По-прежнему обеспечивает случайность выбора определенных элементов
- Эффективно работает как для маленьких, так и для больших списков
Подробнее здесь: https://stackoverflow.com/questions/796 ... st-in-java
Мобильная версия