Как добавить строки в массив между двумя строками

1

Я пытаюсь понять, как добавить строку, в строку ArrayList, между двумя строками, которые уже включены. Поэтому, если у меня есть это

ArrayList<String> List = new ArrayList<String>();
List.add("Yes");
List.add("No");
List.add("Maybe");

Как бы я поместил слово "Or" между ними и включил ArrayList "Да" или "Нет" или "Может быть"?

  • 0
    Да, но будет ли он выдвигать строку, уже находящуюся в этом индексе, вперед, вместе со всеми перед ней?
Теги:
arraylist

2 ответа

2
Лучший ответ

У меня есть три совета.

Во-первых, чтобы назвать переменные, начните с нижнего регистра.

Во-вторых, используйте List как тип переменной, вместо ArrayList, вы поблагодарите меня позже, поверьте мне.

В-третьих, чтобы сделать то, что вы просите, есть перегруженный метод add для выбора позиции:

    List<String> list = new ArrayList<String>();
    list.add("Yes");
    list.add("No");
    list.add(1,"Maybe"); //insert into position 1 and shift everything to the right.

В этом примере, если вы используете System.out.println(list); , вы получите этот результат:

[Yes, Maybe, No]

Для добавления команды Or это будет выглядеть так:

    List<String> list = new ArrayList<String>();
    list.add("Yes");
    list.add("No");
    list.add("Maybe");
    list.add(1, "Or");
    list.add(3, "Or");
    System.out.println(list);

Вывод:

[Yes, Or, No, Or, Maybe]

Кроме того, если вы хотите сделать свою программу более пригодной для повторного использования, вы можете написать метод, который сделает это для вас в любом случае списка:

public static void main(String[] args) {
    List<String> list = new ArrayList<String>();
    list.add("Yes");
    list.add("No");
    list.add("Maybe");
    list.add("Probably");
    list.add("Never");

    List<String> orList = addOr(list);
    System.out.println(orList);
}

public static List<String> addOr(List<String> list){
    List<String> newList = new ArrayList<>();
    int count = 0;
    for(String text : list){
        count++;
        newList.add(text);
        if (count != list.size()){
            newList.add("Or");
        }
    }
    return newList;
}

Имея этот выход:

[Yes, Or, No, Or, Maybe, Or, Probably, Or, Never]

Однако, если вы хотите использовать этот список для вывода некоторого сообщения для пользователя, не стоит добавлять "Или", потому что он действительно не является частью информации. Скорее это хорошо, чтобы создать метод, который будет создавать выходные строки, которые вы желаете.

Этот код

public static void main(String[] args) {
    List<String> list = new ArrayList<String>();
    list.add("Yes");
    list.add("No");
    list.add("Maybe");
    list.add("Probably");
    list.add("Never");

    String niceOutput = addOr(list);
    System.out.println("Choose from following options: " + niceOutput);
}   

public static String addOr(List<String> list){
    String orText = "";
    int count = 0;
    for(String text : list){
        count++;
        orText += '\'' + text + '\'';
        if (count != list.size()){
            orText += " or ";
        }
    }
    return orText;        
}

Имея этот выход:

Choose from following options: 'Yes' or 'No' or 'Maybe' or 'Probably' or 'Never'
  • 0
    Спасибо, вы мне очень помогли!
2

Согласно объекту Добавить объект в ArrayList по указанному индексу

List.add(1, "or") 
List.add(3, "or")

Это должно решить вашу проблему.

  • 0
    Я считаю, что это должно быть 3 во втором добавлении.
  • 0
    @CydrickT - вы действительно должны изменить это 4 на 3, потому что это не работает.
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню