2014-09-20 4 views
-1

줄의 중간 점을 얻는 프로그램을 만들고 있습니다. 그러나 나는 문제가있어.배열 내부의 배열

내가 할 수 있기를 원하는 것은 원하는만큼의 점수와 치수가 있어야한다는 것입니다. 그러나 어떻게 해야할지 모르겠다.

내가하고 싶은 일에 대한 아이디어를 알려주기 바란다.

points[point][x]=1; points[point][y]=2; points[point][z]=3; 

나는 무엇을보고있는가? 이것은 내가 현재

public float[][] points={{}}; 

이 그리고 내가 그것을 쓰기를 할 때 무엇을

 for(int i=0; i<parts.length;i++){ 
      points[currentPoint][i]=Float.valueOf(parts[i]); 
     } 

java.lang.ArrayIndexOutOfBoundsException :

0 그래서 내가 어떻게 할 수 있습니까?

+2

가능한 중복 (http://stackoverflow.com/questions/1067073/initialising-a-multidimensional-array-in-java) – Foggzie

+0

는 선언 – ElefantPhace

+0

GuntherFox에 오른쪽을 남겨주세요 . 내가 할 때 오류가 내 게시물의 아래쪽에서 듣게됩니다. ElefantPhace, 내가 할 때 nullPointerException 오류가 발생 –

답변

0

사용이 3 × 2-D 어레이를 생성하고 모두 0의 값을 초기화 :

public float points[][] = new float[3][3]; 

및이 어레이와 설정 값을 반복하는 :

for (int j=0; j<3; j++) { 
    for (int i=0; i<3; i++) { 
     points[j][i] = 42; //Or whatever 
    } 
} 
0
public float[][] points={{}}; 

이것 빈 2 차원 배열을 만듭니다. 따라서 ArrayIndexOutOfBoundsException입니다. 당신이 6 점과 3 개 차원을 개최 배열을 만들려면 다음을 할당 할 필요가 :

public float[][] points = new float[6][3];

그러나, 나는 당신의 디자인을 재고 것입니다. 당신이 원하는 것보다 더 많은 객체 지향적 인 방법을 원한다면 라인뿐만 아니라 포인트를위한 클래스를 갖고 싶을 것입니다. 예 :

class Line { 
    private final Point startPoint; 
    private final Point endPoint; 

    Line(Point startPoint, Point endPoint) { 
     this.startPoint = startPoint; 
     this.endPoint = endPoint; 

     final int startPointDimensions = startPoint.getDimensions().size(); 
     final int endPointDimensions = endPoint.getDimensions().size(); 
     if (startPointDimensions != endPointDimensions) { 
      throw new RuntimeException("Points that form a line must have the same dimension! " + 
        "Start point dimension: " + startPointDimensions + 
        "End point dimension: " + endPointDimensions); 
     } 
    } 

    public Point midpoint() { 
     // your code goes here 
    } 
} 

class Point { 
    private final List<Float> dimensions; 

    Point(List<Float> dimension) { 
     dimensions = dimension; 
    } 

    public List<Float> getDimensions() { 
     return dimensions; 
    } 
} 

oracle's documentation의 목록에 대해 더 자세히 읽을 수 있습니다. 지원하려는 차원의 수 또는 다른 차원의 수를 지원하려는 경우 배열 목록을 선호합니다. [자바에서 다차원 배열을 초기화 중]의

+0

설명해 주시겠습니까? 내가 어떻게 하는게 좋을지 어떻게 생각해? –