2015-02-07 3 views
0

이것은 실행하려고하는 addToEnd 메소드가있는 MyArrayList의 첫 번째 클래스입니다.addToEnd 메소드를 어떻게 실행합니까?

public class MyArrayList <E extends Comparable<E>>implements List<E> { 
    private E[] data; 
    private int size = 0; 


    private void reallocate(){ 
     size = 2 * size; 
     data = Arrays.copyOf(data, size); 

    } 


    public boolean addToEnd(E e) { 

    if (size == data.length){ 
     reallocate(); 
    } 
    data[size++] = e; 
    System.out.println(); 
    return true; 


} 

내 두 번째 클래스, ArraySorterTester, 나는 내 addToEnd 메소드를 호출하려고하지만 어떤 이유로 작동하지 않습니다 나는 오류가 계속 곳입니다.

public class ArraySorterTester { 
    public static void main(String [] args){ 
     Integer[] test = new Integer[] {1, 2, 4, 6, 8 }; 
     MyArrayList<Integer> inserter = new MyArrayList<Integer>(); 
     boolean sorted = true; 


     inserter.addToEnd(10); 
     for (int k = 0; k < test.length; k++) { 
       System.out.print(test[k] + " "); 
     } 
} 
+1

어떤 오류가 발생합니까? – Lesleh

+0

at MyArrayList.addToEnd (MyArrayList.java:42) ArraySorterTester.main (ArraySorterTester.java:25) 그것은 어떤 행이 잘못되었는지 알려주지 만 해결 방법이 없습니다 ... 할 일이있을 것 같아요. 내가 어떻게 부르는 지. 또는 아마도이 라인을 잘못 작성했습니다. MyArrayList inserter = new MyArrayList (); 그러나 나는 정말로 내가 뭘 잘못하고 있는지 모르겠다. –

답변

0

당신은 너무 오류가 발생합니다 addToEnddata.length에 액세스 private E[] data를 초기화하지 않았습니다.

MyArrayList에 대한 생성자를 만들고 private E[] data을 초기화하려면 new으로 시도해보십시오. size을 초기에 data.length과 같게 만드십시오.

+0

나는 이것을 어떻게 할 것인가에 대해 이해할 수 없다. 그러나 개인 E [] 데이터를 초기화하지 않았기 때문에 나는 당신의 요점을 보았다. –

+0

@HirokiDrake 생성자 및 Java로 배열을 초기화하는 방법을 읽어보십시오. – emlai

+0

그래, "public MyArrayList (Comparable 데이터) {data = new E (새 int [] {1020304050});}"나는 여전히 혼란 스럽다. 내가 데이터를 생성자에 넣을 수 있지만 내 ArraySorterTester 클래스 안에 배열을 선언 할 수있는 방법? –

관련 문제