Невозможно добавить элементы в ArrayList<Integer>

Итак, я пытаюсь создать ArrayList из целых чисел, а затем перебирать в него переменные. Добавляется только первое значение, которое я указываю.

 private ArrayList<Integer> heights(String detail) {
        ArrayList<Integer> heights = new ArrayList<Integer>();
        heights.add(0);
        switch(detail) {
            case "L": for(Integer i = 100; i <= 1000; i=+50) { heights.add(i); } break;
            case "H": for(Integer i = 100; i <= 1000; i=+25) { heights.add(i); } break;
        }
        return heights;
    }

Значение высот ("H"):

высоты: [0]

Какова ценность detail? Если это ни L, ни H, то в список больше нечего добавить

user7 12.05.2019 06:11
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
1
1
41
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Проблема в цикле for. Используйте int вместо класса Integer....

Код ниже работает правильно...

import java.util.*;  
class Test{
        private ArrayList<Integer> heights(String detail) {
            ArrayList<Integer> heights = new ArrayList<Integer>();
            heights.add(0);
            switch(detail) {
                case "L": for(int i = 100; i <= 1000; i=i+50) { heights.add(i); } break;
                case "H": for(int i = 100; i <= 1000; i=i+25) { heights.add(i); } break;
            }
            return heights;
        }
     public static void main(String args[]){
            Test t = new Test();
            System.out.println(t.heights("H"));
         }
    } 

@GhostCat Обновленный ответ, спасибо, что поправили меня

Jayesh Singh 12.05.2019 07:08

Возможно, вы захотите объяснить, почему это работает, но определенно лучше, чем раньше.

GhostCat 12.05.2019 07:24

Отредактируйте это, чтобы объяснить проблему, на которую вы ссылаетесь.

Basil Bourque 12.05.2019 09:24

Другие вопросы по теме