Превращение расширенного цикла for в обычный цикл for

#java #arrays

#java #массивы

Вопрос:

Мне нужно превратить этот фрагмент кода в обычный цикл for для того, над чем я работаю, и я застрял.

 for(int number : input) {
   queue.add(number);
   }
  

Я пробовал —

 for(int i = 0;<input.length;i  ){
    queue.add(input);
  }
  

Я не очень хорошо знаком с улучшением циклов for, поэтому я не уверен, куда идти дальше.

Пока это весь мой код —

 class Solution {
    public int[] sortArray(int[] input) {
        PriorityQueue<Integer> queue = new PriorityQueue<>();
        for(int number : input) {
            queue.add(number);
        }

        for (int i = 0; i < input.length; i  ) {
            input[i] = queue.poll();
        }
        return input;
    }
}
  

Комментарии:

1. Заменить queue.add(input) на queue.add(input[i]) . Оператор, queue.add(input) добавит весь массив, input в queue .

Ответ №1:

Вы близки, но пытаетесь добавить весь массив в очередь. Вместо этого вы должны добавить один элемент в i index input .

Это сработало бы:

 for(int i = 0; i < input.length; i  ) {
    queue.add(input[i]);
}