Curl Global Community

Full Version: ユニークな値の一覧を取得したい
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
ある配列や、レコードの特定フィールドの値から、
重複しない、ユニークな値のみを取り出す方法について、
何かいい実装方法はありますか?
if 句を使って判断するほうがコストは低いかもしれませんが、
私は、ハッシュテーブルを使っています。

Code:
{do
    def ary = {{Array-of int} 1,1,2,3,1,5,3}
    def hst = {{HashTable-of int, bool}}
    {for i in ary do  {hst.set i, true} }
    def vb = {VBox "ユニーク化された値の一覧"}
    {for i in {hst.keys-to-Iterator} do  {vb.add i} }
    {popup-message vb}
}
データ量にもよるんですが、最近のPCスペックだとハッシュを多用しても
気にするほど負荷は上がらないかも、と思うことがあります。
もちろん、メモリ負荷をかけない前提でプログラムするのが最善ですが。


ちょっとケースが違うかもしれませんが、そもそもインスタンスを重複させたくない場合は
Flyweightのパターンを利用して実装するのも手だと思います。
http://ja.wikipedia.org/wiki/Flyweight_%...C%E3%83%B3


これの場合、FlyweightFactoryにインスタンスが集約されているうえ、
何処からオブジェクトが重複されないという保証があるので、集団開発では有用です。