2012-02-11 2 views
3
ArrayList<yellowPage> ob1 = new ArrayList<yellowPage>(); 
yellowPage thing = new yellowPage(100,100); 
thing.calc(i,y,s3); 
ob1.add(thing); 

일부 데이터는 thing에 저장되었습니다. ob1.thing에 저장된 값을 검색하려면 어떻게해야합니까? 인덱스를 알고 있다면Java ArrayList에 저장된 객체 값을 검색하는 방법

+0

Java 명명 규칙, 젠체하라. – m0skit0

답변

10

, 당신은

yellowPage yp = ob1.get(index); 

yellowPage

을 수행 할 수 있습니다 그렇지 않으면 당신은 목록을 반복해야합니다.

Iterator<yellowPate> iter = ob1.iterator(); 
while(iter.hasNext()) 
{ 
    yellowPage yp = iter.next(); 
    yp.whateverYouwantGet(); 
} 

참고 : 입력 한 코드 만 입력했는데 구문 오류가있을 수 있습니다.

+1

캐스트가 필요 없습니다. –

+0

만약 내가 이것을 좋아한다면, 그것은 "yellowPage @ addbf1"로 값을 보여줍니다; 그러나 그 객체 안에 저장된 값을 어떻게 얻을 수 있습니까? 제발 도와주세요 아미르 – user768990

+0

YellowPage 클래스에있는 것은 무엇입니까, 당신은 그 getter를 사용해야합니다. 옐로우 페이지를 게시하고 액세스 할 가치가있는 것을 말할 수 있습니까? – kosa

0

이 작업을 수행하려면 Iterator 객체를 사용하십시오.

ArrayList<yellowPage> ob1 = new ArrayList<yellowPage>(); 
yellowPage thing = new yellowPage(100,100); 
thing.calc(i,y,s3);  
ob1.add(thing); 
yelloPage retrievedThing = null; 
Iterator<yelloPage> i = ob1.iterator(); 
if(i.hasNext()){ 
     retrievedThing = i.next(); 
} 
+0

"retriething"로 yellowPage 개체를 얻은 후, 원하는 것을 얻으십시오. –

0

당신은 단순히 calc 메서드에서 반환 thing (끔찍라는 이름의 변수)에 저장된 데이터를 가질 수있다. 그렇게하면 이후 호출에서 이전 계산을 위해 상태를 유지할 필요가 없습니다. 그렇지 않으면 YellowPage 클래스에서 getter 형식 메서드가 필요합니다. 배열 목록 OB1의

public class YellowPage { 

    private int result; 

    public void calc(...) { 
     result = ... 
    } 

    public int getResult() { 
     return result; 
    } 

} 
1
int x=5; 
int info=ob1.get(x).getInfo(); 

위의 예는 6 인덱스 (getter 메소드를 사용하여) 당신이 당신의 옐로우 페이지 클래스에서 원하는 정보를 모두 얻을 것이다 (0 때문에 카운트). 이 예제에서는 노란색 페이지의 정수를 원한다고 가정합니다. getter 메서드를 만들고 x를 정보를 검색 할 옐로우 페이지의 인덱스로 변경해야합니다.

(당신이 당신의 옐로우 페이지 클래스에 넣어한다) 예 게터 방법과 같이 수 :

public int getInfo() { return z; } 

을 위의 경우 z를 당신의 옐로우 페이지 클래스의 인스턴스 변수가 될 수있는 정보를 포함 너 찾고있어. 자신의 상황에 맞게이 설정을 변경해야 할 것입니다. Chrandra Sekhar는 구문

ArrayList<Integer> list = new ArrayList<Integer>(); 

당신은 대체 "정수를

-3
Class ArrayList<E> 

을 제안

당신은 당신이 그것을 반복 할 필요가 배열 목록에 저장된 모든 옐로우 페이지에서 정보를 얻기 원한다면 "그 목록이있는 클래스와 함께. 응용 프로그램은 ensureCapacity 작업을 사용하여 많은 수의 요소를 추가하기 전에 ArrayList 인스턴스의 용량을 늘릴 수 있습니다. 이렇게하면 증 분식 재 할당의 양이 줄어들 수 있습니다. E는 임의의 클래스가 될 수있는 Element를 나타냅니다. ensureCapacity은 목록에 새 요소를 가져올 충분한 용량이 있는지 확인하는 데 사용됩니다. 새 항목을 목록에 추가 할 때마다 내부적으로 호출됩니다. 이름에서 알 수 있듯이 ArrayList은 배열을 사용하여 항목을 저장합니다. 그래서 배열이 초기화 될 때, 그것은 임의의 길이, 예를 들어 10이 주어진다. 이제 10 개의 항목을 추가하면, 11 번째 항목을 추가하면 배열의 용량을 초과하기 때문에 충돌 할 것이다. 따라서 충분한 공간이 있는지 확인하기 위해 ensureCapacity이 호출됩니다 (내부적으로). 따라서 11 번째 요소를 추가하는 경우 배열 크기는 20 배로 증가 할 수 있습니다.

0

목록을 인쇄하고 toString 메서드를 재정의합니다.

public String toString() 
{ 
return (""+ a+b); //Here a and b are int fields declared in class 
} 

System.out.print(ob1); 
관련 문제