Java нужно читать в неопределенное число в массив - PullRequest
0 голосов
/ 26 сентября 2011

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

public abstract class Polygon implements Shape {


      //numSides is the number of sides in a polygon 

        int numSides; 

          //Vertices[] is the array of vertices, listed in counter-clockwise sense 

        Point[] Vertices; 
        public Polygon(Point[] Vertices){ 
                //THIS IS WHERE I NEED THE HELP, DONT KNOW WHAT TO PUT IN HERE  
            }


       public Point getPosition(){ 
           return this.Vertices[0]; 
                }

       }

Спасибо заранее.

Извините за недостаток информации.Да, это для класса.Я вижу, как ArrayList, вероятно, будет лучше.Сама программа имеет интерфейс Shape, который реализуется классом Point и классом Polygon, класс которого расширяет этот прямоугольник.Идея состоит в том, чтобы поместить число вершин в массив и вернуть значение в Vertices [0] в качестве позиции многоугольника.Остальная часть этого класса выглядит следующим образом:

    public abstract class Polygon implements Shape {

       //numSides is the number of sides in a polygon 

        int numSides; 
        Point[] Vertices; 
        public Polygon(Point[] Vertices){ 
            //your code
            }


        public Point getPosition(){ 
          return this.Vertices[0];  
         } 
        }

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

Ответы [ 4 ]

0 голосов
/ 26 сентября 2011

I думаю , вам нужна элегантная копия массива:

public Polygon(Point[] Vertices)
{ 
    if (Vertices == null || Vertices.length == 0)
    {
        return;
    }

    int i = Vertices.length;
    this.Vertices = new Point[i];
    System.arraycopy(Vertices, 0, this.Vertices, 0, i);
}

После этого вы можете перебирать свой массив:

    ...
    for (Point point : this.Vertices)
    {
        // Use point
    }
    ...
0 голосов
/ 26 сентября 2011

Может быть, это направит вас в правильном направлении:

public static void main(String[] args) {
    System.out.print("how many? ");
    Scanner in = new Scanner(System.in);
    int size = in.nextInt();
    int[] numbers = new int[size];
    System.out.println("Enter the " + size + " numbers.");
    for (int i = 0; i < size; i++) {
        System.out.print(" " + (i + 1) + ": ");
        numbers[i] = in.nextInt();
    }
    System.out.println("Numbers entered: ");
    for (int number : numbers) {
        System.out.print(number);
        System.out.print(' ');
    }
}

Как уже говорили другие, более детальная информация в вопросе принесет больше деталей в ответах.Кроме того, это пахнет домашней работой.Если это так, вы должны пометить его как таковой.

0 голосов
/ 26 сентября 2011

Поскольку ваш вопрос неясен, я предполагаю, что вы просто хотите заполнить свой массив случайными целыми числами.
Здесь прежде всего вам нужно указать размер массива, и лучшее место для этого - ваш конструктор.

 public Polygon(Point[] Vertices){ 
        Vertices = new Point[i];
       //based on a number i specified in another part of the program
       // Now you can use the scanner class to fill your array, see Ryan Stewart's answer for details on using Scanner class.
    }

Надеюсь, это поможет:)
ура !!!

0 голосов
/ 26 сентября 2011

Вы не очень четко понимаете, что вам нужно, но, думаю, вам нужна помощь в вашем конструкторе:

public Polygon(Point[] Vertices){ 
    this.Vertices = Vertices;
    this.numSides = Vertices.length;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...