Как последовательно сохранить точный процент элементов из списка на Java?JAVA

Программисты JAVA общаются здесь
Anonymous
Как последовательно сохранить точный процент элементов из списка на Java?

Сообщение Anonymous »

В настоящее время я фильтрую список Java, чтобы сохранить приблизительно процент его элементов, используя случайный подход: < /p>
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

Вернуться в «JAVA»