2016-07-18 4 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

@barsik正解、私はそれを逃した。 – Jeet

関連する問題