2016-07-18 21 views
0

ArrayList에서 car 요소를 찾아야합니다. 이
{ [1,mobile,5000] [2,car,50000] [3,bike,20000] }Java에서 ArrayList의 요소를 검색하는 방법은 무엇입니까?

클래스와 같은 ArrayList를 데이터

//pro.java 
import java.util.*; 
public class Pro{ 

private int id; 
private String name; 
private int price; 

public String toString(){ 
return id+" "+name+" "+price; 
} 
//getter & setter methods 
} 

하고 탐색 코드는

//Product.java 
System.out.println("enter name you want to search"); 
name = scanner.next(); 
Iterator it=al.iterator(); 
while(it.hasNext()){ 
if(it.next() == name){ 
System.out.println("Yes found"); 
} 
else{ 
System.out.println("Not Found"); 
} 
} 

it 반복자 참조 목적 및 al의 ArrayList를 참조 목적 같다.

검색은 항상 반환되지만 찾을 수있는 요소는 존재합니다. 발견을 위해 그것을 고치는 방법? 적절한 코드로 도와주세요. 감사합니다.

+2

가 바퀴를 재발견하지 마십시오 시도 할 수 있습니다. 'List # contains'를 사용하십시오. – m0skit0

+0

"==를 사용하여 문자열을 비교하지 말고"이외에도 Product 클래스에서 적절한 equals 및 hashCode 메소드를 정의 할 수 있습니다. 그러면 Java 콜렉션이 제공하는 다양한 "조회"메소드를 사용할 수 있습니다. – GhostCat

+0

문자열 비교뿐만 아니라'Pro'와'String'을 함께 사용합니다. – flo

답변

0

ArrayList<Pro> al=new ArrayList<Pro>(); 
    Iterator<Pro> it=al.iterator(); 
    while(it.hasNext()){ 
     if(it.next().getName().equals(name)){ 
     System.out.println("Yes found"); 
     } 
     else{ 
     System.out.println("Not Found"); 
     } 
    } 
+0

여기에 it.next()의 형변환이 필요합니다. – Jeet

+1

@Jeet 아니요, 변수가 매개 변수화되었습니다. –

+1

@ barics 올바른, 나는 그것을 놓쳤다. – Jeet

관련 문제