Map・連想配列

  • Key と Value のペアを扱う方法について。

Java

  • Map の実装クラスを使う。K,V ともにインスタンスでなければならない。
    • プリミティブ型はラップしなければならないが、Java5以降は変換される。
//総称使った方がソースも読みやすいので Java5以降を想定して書きます
Map<String,Integer> name2old = new LinkedHashMap(); //Key群を取り出すときは追加した順になる実装
name2old.put("山田さん", new Integer(52));
name2old.put("山田さん", 48); //Integer にラップされる。key が equals であれば value も置き換わる
name2old.put("川上さん", 32); //同上

//keySet メソッドは Set インスタンスを返す。このソースの場合 Set<String> になる
for (String name : name2old.keySet()) {
  int old = name2old.get(name);  //返り値は Integer だが int への代入なので自動的に剥かれる
}
プラットフォーム
マップの生成は以下のように行います。
Map<キーのデータ型, データのデータ型> マップの名前 = new HashMap<キーのデータ型, データのデータ型>();
マップに要素を追加する場合
マップの名前.put("キー,データ");

PHP

数字ではなく文字のキーをもとにして値を設定した配列を連想配列と呼びます。文字列を多く扱うPHPではほとんどの場合、配列が連想配列になります。
PHP labo
<?php
$fruit = array("apple" => "リンゴ", "orange" => "ミカン", "grape" => "ブドウ");
echo $fruit["apple"];
echo $fruit["orange"];
echo $fruit["grape"];
?>

foreach文(連想配列)

キーと値を同時に取り出し、かつ配列の長さ分実行させることができます。
$preflist = array('Tokyo' => '東京', 'Osaka' => '大阪');
foreach ($preflist as $key => $value){
  print $key.'=>'.$value;
}
//Tokyo => 東京
//Osaka => 大阪

javascript

  • ※不正確。なんかこんな感じの。サンプルコードみつけてみてください。
var map = (
  '山田さん'=>48,
  '川上さん'=>32
);
//foreach への適用例もよろしく。
var myObj = { key1: 'value1' , key2: 'value2' };
または
var myObj = new Object();
myObj['key1'] = 'value1';
myObj['key2'] = 'value2';

値を取り出すには
document.write(myObj['key1']);

forin文でループ(javascriptではforeachの代わりになりやすい?)
for (var keyString in myObj) {
   document.write( myObj[keyString] );
 }

タグ:

+ タグ編集
  • タグ:

このサイトはreCAPTCHAによって保護されており、Googleの プライバシーポリシー利用規約 が適用されます。

最終更新:2013年06月18日 09:43