jsf Webサーバーのリストを使用して、たとえばWebページからデータモデルにアクセスしています。これらのリストへのアクセスは、他のさまざまな場所(Webサービス、ツール)からも行われます。
私が返したリストを頼りにしている誰かによって壊れたコードがあります。私が開発者チームの誰かについて話しているのは、このコードを使用しているのは私たちだけです。私はこの関数についておよそ300の参照を持っており、修正をうまく行うことはパフォーマンスに関連している可能性があります。
リストは1〜10000のエントリで、通常は10〜100のリストがあります。実際には、おそらく20のリストがあり、それぞれに8つのエントリがあるので、それほど大したことではありません。しかし、私はもっと時々持つことができます
私はところでこのような関数について話している:
public List<MyObject> getMyObjectList() {
if (this.myObjects== null) {
myObjects = new ArrayList<MyObject>(myObjectsMap.values());
}
return myObjects;
}
今、私はもちろんこのように戻ることができます:
public List<MyObject> getMyObjectList() {
if (this.myObjects== null) {
myObjects = new ArrayList<MyObject>(myObjectsMap.values());
}
return Collections.unmodifiableList(myObjects );
}
しかし、これは最終的にはさまざまなプロジェクト/アプリケーションのいくつかの場所で機能しなくなります。変更不可能なものを返し、javadocを追加し、壊れたものをすべて修正するのが最もクリーンです。しかし:-Dこれは仕事です。おそらく、およそ10個のアプリケーションをテストする必要があります。
一方、私は新しいリストを返すことができます、例えば
public List<MyObject> getMyObjectList() {
return new ArrayList<MyObject>(myObjectsMap.values());
}
これはほとんど作業ではありませんが、これに関するパフォーマンスの問題はどうですか?それ以外は、誰かが私が返したリストから何かを削除している場合、それは黙ってアプリケーションを壊します。
だから:パフォーマンスの問題は何ですか?それは問題ですか?
あなたならどうしますか?