java

google-collections探訪(4) -落穂拾い-

前回:google-collections探訪(3) -Immutableなコレクション- - souta-bot log BiMap 双方向マップ。 日本語⇔英語みたいに双方向変換Mapに使える。 public static final BiMap<String, String> view = new ImmutableBiMap.Builder<String, String>() .put("USD", "米ドル") .put("EUR", "ユー</string,></string,>…

google-collections探訪(3) -Immutableなコレクション-

前回:google-collections探訪(2) -Multiset,Multimap- - souta-bot log お次は大量にあるImmutableなコレクションからいくつかピックアップ。 従来の方法 コレクションを変更不可にしたい場合はCollections.unmodifiableHoge()を使う。 ただしこの変更不可…

google-collections探訪(2) -Multiset,Multimap-

前回:google-collections探訪(1) -map,filter- - souta-bot log お次は新しく追加されたコレクションクラスを見てみる。 Multiset 重複を許すSet。またの名をBag。 HashMultiset Multiset<String> histogram = HashMultiset.create(); histogram.add("foo"); histog</string>…

google-collections探訪(1) -map,filter-

Guavaってのが最近公開されたけど、これに将来的に統合される?というgoogle-collections(RC2)を今頃いじってみる。 まずmap,filterぽいのを。 Collections2.transform mapに相当。要素に適用するメソッドはFunctionで用意。 mapでなくてtransformなのはC++…

Checkstyleのカスタムルール作成と共有

導入しても反発が少なそうなCheckstyleのゆるいカスタムルールを考えてみた。 それとEclipseでのカスタムルール共有方法をメモ。 カスタムルール作成 雛形は既存(プラグイン付属?)の「Sun Checks (Eclipse)」のコピーを使用する(「Sun Checks」よりゆるいル…

Float,Doubleのequalsとfloat,doubleの==

EffectiveJava(2版)のItem8に、equals実装時float(double)は他のプリミティブが==で比較してるのと異なり Float.compareで比較してねと書いてあったので理由を調べてみる。Float.NaNと-0.0fが理由らしいが、詳しくはFloat.equalsのドキュメント見ぃやとあっ…

JavaDocちょっと復習

ドキュメンテーションコメントはあまり意識してキチンと書いてなかったので反省して以下で復習。 http://www.javadrive.jp/javadoc/ 注意点 ドキュメンテーションコメント内で見出しタグ(<h1>等)は使わない→そーゆーのはJavaDocに任せる。 ドキュメントの作成 ja</h1>…

範囲終端指定比較

直接指定型 (2, 4) |0|1|2|3|4|5|結果:(2, 3, 4) 左端指定型 左側の切れ目をさす。(-1より覚えやすい?) (2, 4) |0|1|2|3|4|5| 結果:(2, 3) Java 左端指定型 public static void main(String[] args) { String str = "foobar"; S…

Assertion(表明)について

Assertionの使いどころの理解があいまい。 現時点での自分ルールは /** * 自分しか使わない等の理由で引数の内容が自明。 * @param arg nullはダメ。 */ public void doWithClearArg(String arg) { assert arg != null; //--- } /** * 自分以外のユーザがい…

JavaのsplitでハマったのでClip

http://d.hatena.ne.jp/hackaddict/20070119/1195653477C#も試してみる。 using System; using System.Collections.Generic; using System.Text; namespace SplitTest { class Program { static void Main(string[] args) { string hoge = "a,b,c,,"; string…

enum

Javaのenumの実態はクラスだから次のように書ける。 enum Hoge { FOO("0010"), BAR("0011"), BAZ("0101"); private String code; Hoge(String code) { this.code = code; } String ToString() { return this.code; } } でも次のC#のenumは× enum Hoge { FOO …