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);
}
}
< /code>
Хотя это работает для аппроксимации процента, каждый пробег дает разные результаты, а фактический процент, сохраняемый, может значительно варьироваться от моей цели, особенно с небольшими списками. < /p>
Например: при нацеливании 30%от списка 10 элементов, я могу получить 2 элемента (20%) на одном запуска и 4 элемента (40%) на другие элементы, я мог бы получить 2 элемента (20%) на одном запуска и 4 элемента (40%) на другие элементы. Вопрос:
Как я могу изменить свой код, чтобы последовательно сохранить именно указанный процент элементов из списка? В идеале я бы хотел решение, которое: < /p>
- сохраняет ровно процентгеторетайн процент элементов (округление на нижней части по мере необходимости) < /p>
< /li>
до сих пор обеспечивает случайность, в которых специфические элементы выбираются < /p>
< /li>
< /br />
Подробнее здесь: https://stackoverflow.com/questions/796 ... st-in-java