2017-01-30 9 views
1

クラスに配列リストがあり、配列はrealtorListと呼ばれています。私のメインクラスからは、realtorデータを持つオブジェクトをrealtorListに格納します。 テキストファイルに保存され、1行目に読み込まれるデータです。 これは、データの最初の行を格納した後のrealtorListの最初の要素です。オブジェクトの配列リストの検索

[不動産{licenseNumber = AA1111111、のfirstName =アンナとLastName =アストリッド、にphoneNumber = 111-111-1111、 手数料= 0.011}] Iは、入力からデータの次のラインを読み取る

file太字のlicenseNumberがすでにrealtorListに存在するかどうかを確認する必要があります。私はこのことをどうやってやっていくかを考え出すのに苦労しています。

たとえば、次の不動産データのライセンス番号がAA1111111の場合、この例では存在するAA1111111のrealtorListを確認するにはどうすればよいですか。

+0

realtorListをループし、各要素に対して読み取りライセンス番号を確認するだけではどうですか?遅いですが、情報をMySQLデータベースのようなものに保存しない限り、ほとんど何も試していません。 – mstorkson

+1

ここで 'Map'が役に立ちます。 – SomeJavaGuy

+0

これは、最初の要素realtorList.get(0)を呼び出したときにライセンス番号を取得する方法に問題があります。ライセンス番号をどうやって読むだけですか? – Kevin

答えて

1

本当に簡単な方法は、String ArrayList(たとえば、ライセンスと呼ばれるもの)を実行し、indexOfでifステートメントを使用して、そのライセンス値が既にListにあるかどうかを返すことです。ライセンスArrayListは1つの値しか持たないので、indexOfで簡単に検索できます。

例は

private boolean checkLicense (String licenseNumber) { 
     int i = licenses.indexOf(licenseNumber); 
     if(i == -1) { 
      return false; 
     } else { 
      return true; 
     } 
} 

同様のコードが記載されているポートを備えたモータは、新しいものを追加する前にすでにありますかどうかを確認するために、ロボットのチェックのためのモータの動的なリスト私のプロジェクトの一つで働くだろう。

別の方法は、(それはのような方法であることが必要であろう、それが見つかるまでこれはそれぞれ、すべてのオブジェクトの線形探索を実行することになるような

private boolean checkLicense (String licenseNumber) { 
    for(int i = 0; i < (realtorList.size() - 1); i++) { 
     if (licenseNumber.equals(realtorList[i].getLicenseNumber())) { 
     return true; 
     } 
    } 
    return false; 
} 

として線形検索にforループを使用することができ上記の例ではこのように動作します)

+0

"=="演算子を使って文字列を比較するのは間違いありませんか? –

+0

ああ。私は、この例に合うように修正した元のコードがIntegersを比較して以来、修正する必要があります。私はそれを編集します。 – Bakna

+0

私が(license.equals(realtorList.get(count).getlicenseNumber))を使用する場合、.getlicenseNumberは赤で強調表示され、その上にカーソルを置くとjava.lang.Object.getlocenseNumberが表示されます。 – Kevin

関連する問題