как дать множественный ввод массива без получения массива или связанных исключений - PullRequest
1 голос
/ 30 января 2020

`Я дал 6 значений в массиве, но я хочу его динамически, чтобы я не получал массив из ограниченного исключения для такого количества входов, которое я даю. например, и я хочу, чтобы "ПЕЧАТЬ" в той же строке, а не в разрыве строки.

Ввод с консоли

```
4
3.176 2
0.5 0.5
4 4
2 4
1 1.5 4 4 PRINT


основной класс для получения ввода с консоли.

public static void main(String args[]) throws IOException
    {
        Scanner scanner = new Scanner(System.in);
        int numpoints = 6;

        BoundingBox b = new BoundingBox(numpoints);
        double x[] = new double[6];
        int counter = 0;
        while(scanner.hasNext()){
            String line = scanner.nextLine();
            if(line.equals("PRINT")){break;}
            //Inorder to use TEST WITH COUNT PLEASE UNCOMMENT IT .
            //if(line.equals("COUNT")){break;}
            String lineArr[]  = line.split(" ");
            Double xD = Double.valueOf(lineArr[0]);
            x[0] = (double)xD;

            if(counter == 0) {
                x[1] = 0.0;
                counter++;
            }else {
            Double yD = Double.valueOf(lineArr[1]);
            x[1] = (double)yD;
            }
            Double zD = 0.0;
            if(lineArr.length>=6){
            zD = Double.valueOf(lineArr[2]);
            x[2] = (double)zD;

            Double wD = 0.0;
            wD = Double.valueOf(lineArr[3]);
            x[3] = (double)wD;

            Double yD = 0.0;
            yD = Double.valueOf(lineArr[4]);
            x[4] = (double)yD;

            Double id=0.0;
            yD = Double.valueOf(lineArr[5]);
            x[5] = (double)id;






            }
            //System.out.println("xD, yD, zd,  wd)= "+xD+"+"+"+zD+"+" + wD+");
             b.build(x);

        }


        System.out.println("\n ");
        b.putNew();
   }

1 Ответ

0 голосов
/ 30 января 2020

Массивы в Java должны быть инициализированы с фиксированным размером во время выполнения. Как только его размер был установлен, его нельзя изменить.

Если вы хотите сохранить список элементов, вы можете использовать List.

List - это интерфейс, поэтому Вы не можете вызвать new List();, вместо этого вы должны выбрать реализацию. ArrayList - это хорошее всестороннее соответствие, которое, как следует из названия, подкрепляется массивом.

Например:

List<Integer> list = new ArrayList<>();
list.add(1);
list.add(2);
...
// continue indefinitely

System.out.println(list.get(0));  // prints the first thing in the list

будет работать нормально.

Обратите внимание, что вы должны (технически не требуется, но очень хорошая практика) указать тип элемента в List (то есть List<String> или List<Integer>).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...