2012-04-26 3 views
0

자바 프로그래밍에 대한 내 머리를 아프게하는 데 문제가 있습니다.벡터에 보관 된 객체에서 문자열 검색

기본적으로 Workers라는 클래스가 있고 인스턴스 변수 중 하나는 nameOfWorker입니다. 그런 다음 Vector 클래스에있는 Workers 클래스의 모든 인스턴스를 저장했습니다.

이제는 문제가되는 것은 내가 보유한 Workers의 모든 인스턴스에서 특정 작업자의 이름 (John이라고 가정)을 확인하는 방법을 모르겠다는 것입니다. 내 벡터 v.에서

어떻게해야합니까?

또한 벡터에서 보유하고있는 Worker 객체 중 하나에서 John과 일치하는 항목을 찾은 후 벡터의 해당 위치에 저장된 인스턴스 메소드에 어떻게 액세스합니까?

희망 사항 명확하게 내 문제를 진술 할 수 있었으면합니다. 도움이 될 것입니다.

+0

먼저 'Vector'를 사용하지 않으려는 경우, List 을 사용하고 싶을 것입니다. 둘째, 좋은 (int idx) 또는 for (Worker worker : workers) 루프에 대한 좋은 점은 무엇이 틀렸는가? 세 번째로,'Worker.nameOfWorker'는 매우 초조해 ... 당신은'Worker.getName()'을 원합니다. – Bobby

+1

@Bobby 현대에서는,'for (Worker w : workers)'루프를 사용하는 편이 낫습니다. 또한, 그들은'Vector'를 사용하고 있다는 사실은 구현의 세부 사항입니다.'List ' "을 사용하고 싶다고 말할 수는 없습니다. 왜냐하면 이것을 주장하는 컨텍스트 정보가 부족하기 때문입니다. – Romain

+0

@Romain : 그가 위치를 원한다면 아닙니다. ;) 그러나 사실 인스턴스를 저장하는 대신 인스턴스를 사용하는 것이 좋습니다. – Bobby

답변

0

이터레이터를 사용해야하거나 인덱스 기반 액세스를 사용할 수도 있습니다.

for (Worker w : vector) { 
    System.out.println("Worker Name: " + w.getNameOfWorker()) 
} 

getNameOfWorker 게터 메소드가 클래스에없는 경우를 대비하여 추가하십시오.