• Как добавлять элементы в массив до определенной суммы?

    @Yuvis
    Изучаю java
    Мне кажется, что алгоритм действий будет немного другим. Так как в задаче говорится брать произвольно числа из одного списка и добавлять в другой до тех пор пока сумма не станет равной 1000.
    Я думаю что надо сначала рандомно выбирать номер ячейки первого списка, затем положить содержимое этой ячейки в другой список. Затем брать следующее значение тоже рандомно и помещать так же во второй список. После этого сразу проверять сумму и если она меньше 1000, то снова брать и добавлять слагаемое из первого списка. А если сумма больше 1000, то брать другое слагаемое, пока сумма не станет равна 1000.
    Придется немного заморочиться с циклами

    Думаю как-то так будет это выглядеть
    public static void main(String[] args) throws IOException {
            
            List<Integer> numbers = new LinkedList<>();
            numbers.add(100);
            numbers.add(200);
            numbers.add(500);
            numbers.add(1000);
    
            findSumList(numbers, numbers.size());
        }
    
        private static void findSumList(List<Integer> inputData, int rangeSize) {
    
            List<Integer> outData = new LinkedList<>();
            int sum = 0;
    
            while (sum != 1000){
                final Random random = new Random();
                outData.add(inputData.get(random.nextInt(rangeSize)));
    
                sum = 0;
                for (int cell : outData){
                    sum += cell;
                }
    
                if (sum > 1000) {
                    outData.remove(outData.size() - 1);
                }
            }
            System.out.println(Arrays.toString(new List[]{outData}));
        }
    }
    Ответ написан
  • Почему происходит ошибка Lazy-инициализации у энтити?

    @Yuvis
    Изучаю java
    У вас стоит FetchType.EAGER инициализация, а не LAZY
    Ответ написан
    Комментировать