1

アイデア:

私はオブジェクトを持っています

public class Book(){
  private String name;
  private Integer nbOfPage;
  public Book()
  ...
}

そして、このオブジェクトのリストを取得しました

List<Book> books = new ArrayList<Book>();

今、グアバまたは別の図書館で、私が手に入れたすべての本からすべての異なる名前のリストを取得する簡単な方法があるかどうか疑問に思っていました。

List<String> names = new ArrayList<String>();
for (Book aBook : books){
   if (!names.contains(aBook.getName()){
        names.add(aBook.getName());
   }
}

この方法は少し「重い」と思います。私の本のリストには 200 から 1200 の本が含まれる可能性があります。

よろしく、

4

2 に答える 2

1

書籍名のコレクションにSet (HashSet など) を使用すると、現在の書籍名を既に持っているかどうかを毎回確認する必要がなくなります。要素を一定時間で HashSet に挿入でき、重複はありません。適切な hashCode() メソッドと対応する equals があることを確認してください。Java で equals と hashCode をオーバーライドするときに考慮すべき問題は何ですか?

すべての本を少なくとも 1 回反復処理する必要があるため、より高速なソリューションは存在しません。

于 2013-02-14T09:41:03.973 に答える