ハッシュを適当に自作

processingというよりjavaのハッシュがゴミすぎる気がする。


http://processing.org/reference/HashMap.html


これprocessingの公式のHashMapのリファレンスなんだけど、やばすぎるでしょこれは。syレになってない。


Iterator i = hm.entrySet().iterator();


もうこことか暗黒微笑しかでないんですけど^^;;;;
他のLL言語。たとえばphpとかだと foreach($hash as $key => $val) で終わることですよ。
こういうところまじでJavaは頭がおかしいと思う。
仕方ないのでとりあえず軽くforeachをするためだけに適当なhashクラスをつくってみる。

class Hash {
  ArrayList keys = new ArrayList();
  ArrayList vals = new ArrayList();
  int length;

  void $(Object key, Object val) { 
    keys.add(key); vals.add(val); 
    length = keys.size();
  }
  Object key(int i) { return keys.get(i); }
  Object val(int i) { return vals.get(i); }
}

Hash h = new Hash() {{
  $("key1", "val1");
  $("key2", "val2");
  $("key3", "val3");
}};

for(int i=0; i<h.length; i++) {
  println(h.key(i) + " " + h.val(i));
}

うーむ。コードは書きやすくはなったけどこれは処理的にどうなんでしょうね。
ArrayListがなんか重そうな気がするけど。
まぁ重くなったら考えるということで当分はこれ使っていこうかなという顔になりました。

追記

でもやっぱり標準で用意されているHashMapを使ったほうがいいと思います まる