Thread Rating:
  • 232 Vote(s) - 2.8 Average
  • 1
  • 2
  • 3
  • 4
  • 5
ユニークな値の一覧を取得したい
08-08-2013, 08:09 PM, (This post was last modified: 08-08-2013, 08:10 PM by umemura.)
#1
ユニークな値の一覧を取得したい
ある配列や、レコードの特定フィールドの値から、
重複しない、ユニークな値のみを取り出す方法について、
何かいい実装方法はありますか?
Reply
08-08-2013, 08:16 PM,
#2
RE: ユニークな値の一覧を取得したい
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}
}
Reply
08-09-2013, 10:13 AM,
#3
RE: ユニークな値の一覧を取得したい
データ量にもよるんですが、最近のPCスペックだとハッシュを多用しても
気にするほど負荷は上がらないかも、と思うことがあります。
もちろん、メモリ負荷をかけない前提でプログラムするのが最善ですが。


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


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

Forum Jump:


Users browsing this thread:
1 Guest(s)

MyBB SQL Error

MyBB has experienced an internal SQL error and cannot continue.

SQL Error:
1017 - Can't find file: 'mybb_threadviews' (errno: 2)
Query:
INSERT INTO mybb_threadviews (tid) VALUES('953')