Как добавить столько элементов, сколько я хочу в список массивов на входе? - PullRequest
0 голосов
/ 29 октября 2018

Как добавить столько элементов, сколько я хочу, в список массивов - только с одной операцией вставки ?

Я хочу добавить 5 пунктов в список покупок с одним вводом. А потом я хочу распечатать 5 пунктов.

Вот что я сделал сейчас:

package paket1;

import java.util.ArrayList;
import java.util.HashMap;

import javax.swing.JOptionPane;

public class Class2 {

    public static void main(String[] args) {

        int i = 0;

        while (i != 5) {

            String Eingabe = JOptionPane.showInputDialog("Add Einkaufsliste");

            ArrayList<String> einkaufsListe = new ArrayList<>();

            einkaufsListe.add(Eingabe);

        }
    }
}

Ответы [ 2 ]

0 голосов
/ 29 октября 2018

Я думаю, что лучше выделить эту логику в отдельный метод, который возвращает требуемый список. Если вы хотите использовать ArrayList, не забудьте установить начальный размер.

public static List<String> gibAlleEinkaufe(int insgesamt) {
    List<String> einkaufsListe = new ArrayList<>(insgesamt);

    for(int i = 0; i < insgesamt; i++)
        einkaufsListe.add(JOptionPane.showInputDialog("Add Einkaufsliste"));

    return einkaufsListe;
}
0 голосов
/ 29 октября 2018

Каждый раз, когда выполняется ваша итерация, вы создаете новый пустой список и добавляете в него один элемент. Но этот цикл никогда не закончится, потому что i никогда не увеличивается и всегда будет 0. Правильный код будет выглядеть так:

int i = 0;
List<String> einkaufsListe = new ArrayList<>();
while (i <= 5) {
    String eingabe = JOptionPane.showInputDialog("Add Einkaufsliste");
    einkaufsListe.add(eingabe);
    i++;
}

И тогда вам также придется распечатать его.

...