2011-08-01 6 views
0

나는 이미이 질문을했고 나는 클래스를 사용하여 추가 질문을 받았다. 아래 코드를 참조하십시오.java Pair 및 ArrayList 질문

import java.util.*; 

    class Pair{ 
     int toWhere; 
     int weight; 
    } 

    public class Test{ 
     public static void main(String[] args){ 
     ArrayList[] arr = new ArrayList[2]; 
     Pair p = new Pair(); 

     for(int i=0; i<arr.length; i++) 
      arr[i] = new ArrayList<Pair>(); 

     p.toWhere = 1; 
     p.weight = 2; 
     arr[0].add(p); 
     System.out.println(p); // gives me [email protected] 
     System.out.println(arr[0].get(0)); // gives me exactly the same, [email protected] 
     System.out.println(p.toWhere); // gives me no error, and is 1 
     System.out.println(arr[0].get(0).toWhere); // gives me an error 
     } 
    } 

내 질문은 이쪽. p 값과 arr[0].get(0) (주소는 같습니까?) 동일합니다. 하지만 p.toWhere은 정확한 값을 알려 주며 arr[0].get(0).toWhere은 무엇입니까?

+0

당신이 사용해야 할 수도 있습니다 대신'ArrayList를 []' – Nishant

답변

2

arrArrayList 인 배열이 Pair임을 컴파일러가 알지 못하기 때문입니다. 당신은 편곡 입력해야합니다 : 당신이 arr[0].get(0)를 사용할 때

List<Pair>[] arr = new ArrayList[2]; 

지금, 컴파일러는 getPair (안 코드에서와 같은 Object가) 너무 Pair의 방법을 사용할 수 있습니다 반환 것을 알고있다.

+0

가 대단히 감사합니다 :) – hongtaesuk

+3

@hongtaesuk을 그래서 지금 당신이 –

+0

오 그게 내가 했어야 무엇 체크 표시를 클릭하여 답변을 받아 들여야한다! – hongtaesuk