ハッシュオブジェクト

Last-modified: 2008-06-21 (土) 23:40:39

ハッシュとは,配列のように,複数のデータ値を格納することができるデータ構造体ですが,配列が順に並んだ添え字番号で,各データの格納場所を指定するのに対し,ハッシュでは,参照キーと呼ばれる文字列をユニークキーとしてデータを格納します.アクセスするキーが,添え字番号に対応づけしにくいデータは,配列よりハッシュを使うと効率的に扱えます. also see ハッシュって何?

DATAステップでは,数値型,文字型の変数,および,配列(スカラー変数の集合にオーバーレイ定義します see ARRAYステートメント)が基本的なデータ構造体ですが,ハッシュは,定義済みオブジェクトとして使うことができます.
also see オブジェクトって何?

構文

オブジェクト

  • ハッシュオブジェクト
    hash
  • ハッシュ反復子オブジェクト
    hiter

DATAステップステートメント

  • DECLAREステートメント
  • _NEW_ステートメント

メソッドとアトリビュート

  • ADDメソッド
  • CHECKメソッド
  • DEFINEDATAメソッド
  • DEFINEDONEメソッド
  • DEFINEKEYメソッド
  • DELETEメソッド
  • FINDメソッド
  • FIRSTメソッド
  • LASTメソッド
  • NEXTメソッド
  • OUTPUTメソッド
  • PREVメソッド
  • REMOVEメソッド
  • REPLACEメソッド
  • NUM_ITEMSアトリビュート

実行例

data _null_;

  /*サイトのurlを格納するハッシュオブジェクトのインスタンスwebsiteを作る*/
  length name $20 url $200;
  declare hash website;
  website = _new_ hash( );
  rc = website.defineKey('name');
  rc = website.defineData('url');
  rc = website.defineDone();
  call missing(name, url); /* 「NOTE:..初期化されていません」を表示させない*/

  /*サイト名を参照キーにして,urlを格納する*/
  rc = website.add(key: 'google', data: 'http://www.google.co.jp/');
  rc = website.add(key: 'yahoo', data: 'http://www.yahoo.co.jp/');
  rc = website.add(key: 'infoseek', data: 'http://www.infoseek.co.jp/');

  /*サイト名(参照キー)から,urlを取り出す*/
  name="yahoo";
  rc = website.find();
  put name= url=;
  name="google";
  rc = website.find();
  put name= url=;

run;

/*
name=yahoo url=http://www.yahoo.co.jp/
name=google url=http://www.google.co.jp/
 */