タグ

ブックマーク / kaiseh.hatenadiary.org (4)

  • 外部イテレータと内部イテレータ - kaisehのブログ

    Javaでコレクションクラスを作ってそのイテレータを実装する場合、Javaにはクロージャが無いので、外部イテレータを使うことがほとんどだと思います。 例えばint値のコレクションとイテレータを自作するときは、まず以下のようにIntIteratorとIntIterableを用意して public interface IntIterator { boolean hasNext(); int next(); } public interface IntIterable { IntIterator iterator(); } 以下のように実装します。 public class IntArray implements IntIterable { private int[] array; private int length; public IntArray(int[] array) { this.a

    外部イテレータと内部イテレータ - kaisehのブログ
    voidy21
    voidy21 2010/03/02
  • アプレットを開いたユーザに拒絶感を与えない方法 - kaisehのブログ

    Javaアプレットが載ったHTMLページを開くと、こういうスプラッシュ画像が出てきます。 この画像が目に入った瞬間、反射的にページを閉じる習慣が身に付いてしまっているユーザは、僕を含めて多いと思います。 Java SE 6 Update 10でサポートされたimageパラメータを使うと、この画像を任意に置き換え可能なようです。 追記: imageパラメータ自体は、もっと前からあったようです。Java SE 6 Update 10以降は、画像をセンタリングするcenterimageパラメータやアニメーションGIFが追加サポートされたようです。 <applet ...> <param name="image" value="another_image.gif" /> </applet> 例えば以下のFlex風画像で代替すると、ユーザにかなり安心感を持ってもらえるんじゃないでしょうか。

    アプレットを開いたユーザに拒絶感を与えない方法 - kaisehのブログ
  • JavaからWin32 APIを簡単に呼べるnlinkを使ってみた - kaisehのブログ

    Windowsのファイルにhidden属性を付けたかったんですが、Pure Javaではそのようなことができないので、JavaからWin32 APIを呼び出せるnlinkを使ってみたら、ものすごく簡単でした。これは便利! 以下のようにするだけで使えます。 MSDNとかで、呼びたいAPIのシグネチャを調べる。 APIのDLLと同名のインタフェースを作って@DllClassアノテーションを付ける。 シグネチャに合わせたメソッドを定義して@DllMethodアノテーションを付ける。 NLink.create()でインタフェースのプロキシを生成して呼び出す。 ファイルにhidden属性を付けるコードは、次のようになります。 Kernel32.java @DllClass public interface Kernel32 { public static final int FILE_ATTRIBU

    JavaからWin32 APIを簡単に呼べるnlinkを使ってみた - kaisehのブログ
  • 適切なクラスタ数を推定するX-means法 - kaisehのブログ

    K-means法によるクラスタリングでは、あらかじめクラスタ数Kを固定する必要があります。HatenarMapsでもK-means法を使っているのですが、クラスタ数は(特に根拠もなく)200個に決め打ちになっていました。 これに対して、X-means法というK-means法の拡張が提案されていることを知りました。X-means法を使うと、データに応じて最適なクラスタ数を推定できます。 K-means and X-means implementations http://www-2.cs.cmu.edu/~dpelleg/download/xmeans.pdf X-means法の考え方は、K=2で再帰的にK-means法を実行していくというもので、クラスタの分割前と分割後でBIC(ベイズ情報量規準)を比較し、値が改善しなくなるまで分割を続けます。 調べたところ、Javaのデータマイニングツー

    適切なクラスタ数を推定するX-means法 - kaisehのブログ
  • 1