0

連絡先を追加/削除/検索/並べ替える必要がある連絡先アプリケーションのようなものを開発しようとしています。したがって、データ構造としてMyContactオブジェクトのArrayListを使用しています。

MyContactには名前と番号が含まれているため、ArrayListを並べ替えるには、ArrayListでパターンを探すのに時間のかかる作業になると思います。

現在、私は各要素をトラバースしてパターンをチェックしています。私は最初にリストをソートしようとしましたが、それも時間がかかります。

arraylistで検索するためのより良い方法を提案してください。または、別のデータ型に切り替える必要があるかどうかを提案してください。この段階では、リスクはほとんどないと思います。

4

1 に答える 1

2

早期に最適化しようとしているようですね。ソフトウェア開発では、最初にそれを機能させ、次に実際のパフォーマンスの問題を特定した後、最適化するのが一般的なスタンスです。そうは言っても、あなたはソフトウェア開発のアドバイスではなく、プログラミングのアドバイスを求めているのです。

プログラミングに関しては、ここで最適化することが2つあります。パフォーマンスとコード。

コードをクリーンに保つには、独自のフレームワークを作成するのではなく、既存のフレームワーク/規則を利用するようにしてください。ComparableインターフェイスとJavaのCollectionsクラスの使用法を見てみましょう。その後、ApacheCommonsCollectionsライブラリが業界標準になりました。グーグルのグアバは、多くの理由で最近の標準としてコモンズコレクションに取って代わっているようです。最も注目すべきはジェネリックスのサポートが優れていることです。

パフォーマンスに関しては、並べ替えまたはフィルタリングするには、各レコード/オブジェクトを(少なくとも1回)評価して、結果に正しい順序/含まれているかどうかを評価する必要があります。これに対する唯一の実際の代替手段は、検索する前にデータに「インデックスを付ける」ことです。このため、(Java)業界標準はLuceneですが、ニーズに対してやり過ぎである可能性が非常に高くなります。

于 2012-12-21T20:40:19.633 に答える