- PR -

インスタンス間で List を受け渡す時、どの段階で複製を作るべきか?

投稿者投稿内容
unibon
ぬし
会議室デビュー日: 2002/08/22
投稿数: 1532
お住まい・勤務地: 美人谷        良回答(20pt)
投稿日時: 2003-05-08 10:08
unibon です。こんにちわ。

引用:

kitoさんの書き込み (2003-05-06 05:00) より:
と、ここまで書いて気が付きましたが、Collections.unmodifiableList(List)が複製であることを考えるとこれも「無駄な複製」になってしまいますねぇ・・・


ちなみに、unmodifiableList は、複製は作らないので、
パフォーマンスの点では負荷は少ないです。
私は、段階(1)で、とりあえず unmodifiableList にしておくのが良いと
思っています(前述のように保険の意味で)。

引用:

うのきちさんの書き込み (2003-05-06 12:52) より:
Listを実装したラッパクラスを作って、変更が行われようとした段階で複製を作るという手もありますね。


これは、遅延○○のような感じの手法でしょうか。
巧みさが要求されるので私には難しいかなとも考えています。

引用:

悪夢を統べるものさんの書き込み (2003-05-06 14:27) より:
不特定多数の第三者に提供することを前提とするモジュールで,Listの変更が
ないことを保証したいというのなら,その渡す前の段階で防御的コピーをすべきです.


ということは、私が書いた3つの段階の内、(1)は、やるべき、
ということですよね(この前提条件の場合は)。
この趣旨でいけば、同様に(2)もやるべきでしょうか。
それとも(2)は不要でしょうか(いずれにしても、やはり前提条件付きでしょうけど)。

#江戸時代の「入り鉄砲に出女」?  (パッと思いつきで書いただけですが。)

スキルアップ/キャリアアップ(JOB@IT)