1

面接で、重複する学生オブジェクトをリストから削除するように求められました。学生オブジェクトには異なるプロパティが含まれている可能性があります。条件は、セットまたはハッシュマップを使用しないことです。

4

5 に答える 5

1

ArrayList をソートしてループします。しかし、重複オブジェクトをどのように定義しますか? 参照が等しいか、同じプロパティを持っていますか?

于 2012-05-28T04:43:07.430 に答える
1
  1. リストを並べ替えます。
  2. リストを反復処理し、現在のオブジェクトがその隣接オブジェクトと等しいかどうかを確認します。

これには、リストをソートするために O(n*log(n)) が必要であり、ソートされたリストを反復するには O(n) が必要です。

したがって、合計実行時の複雑さは O(n*log(n)) + O(n) = O(n*log(n))です。

于 2012-05-28T04:43:58.070 に答える
0

学生オブジェクトの参照を比較することで確認できます。

于 2012-05-28T04:44:50.390 に答える
0

リストには、重複を削除する直接的な方法はありません。重複を削除する最速の方法は Sets です。重複を削除するリストでは、 hashcode() および equals() メソッドをオーバーライドする必要があり、1 つのオブジェクトのリスト全体を反復処理する必要があります。

于 2012-05-28T06:00:35.253 に答える
0

おそらくあなたのインタビュアーは、オブジェクトの重複を許可しない回答として「java.util.Set」を取得しようとしています。これは、期待できる典型的な標準的な質問です。

于 2012-05-28T06:05:33.550 に答える