「Javaルールブック」流し読み

Javaルールブック ?読みやすく効率的なコードの原則

Javaルールブック ?読みやすく効率的なコードの原則

本屋で見つけたので購入。
こういう"書き方"の本ってあまり出版されてないから、ちょっとうれしかった。
まださらっと流し読みした段階(現在2週目熟読中)だけど、これは後輩におススメしようと思える一冊でした。
Eclipseショートカットコマンド一覧がついてるのもイイネ!
注意点としては、『本書の使い方』の項目を読まずに中身を読んで「これを全部守らないといけないんだ」と考えてしまわないように気をつけないと、地雷を踏んでしまうかも?


ともかく、読んで損はない一冊だと思いました。

enumごにょごにょ

エディットグラフでの最短経路探索 - pocketberserkerの爆走の中で

if(current.type == NodeType.DELETE && parent.x == current.x && parent.y == current.y-1) {}
else if(current.type == NodeType.ADD && parent.x == current.x-1 && parent.y == current.y) {}
else if(current.type == NodeType.COMMON && parent.x == current.x-1 && parent.y == current.y-1) {}
else {
	current.prev = parent.prev;
	continue;
}

などとenum使ってるのに不格好な書き方をしていたので、修正がてら記事を投下しておく。

続きを読む

diffっぽいもの

以前、•¶‘”äŠridiffjƒAƒ‹ƒSƒŠƒYƒ€のページを見てdiffに興味を持ったのだが、なかなか手をつける機会がなかった。
しかしこのたび、公的(?)な機会に巡り合えそうなのでとりあえず作ってみた(言語はJava)。
編集距離の導出方法はいくつか存在するが、今回はWu氏らの計算量O(NP)のアルゴリズムを用いた。
Wu氏らの論文An O(NP) Sequence Comparison Algorithm(PDF)に詳細が書かれているので説明は割愛するが、今回作成したプログラムは論文内のFigure 6をほぼそのまま適用している。
もっときちんとした実装を見たい場合は、言語は異なるが

などをみると参考になるかと。

以下、プログラム(長くて申し訳ない)

続きを読む