2008-08-01から1ヶ月間の記事一覧
HashMapを使う上での注意点について説明します。 Map型変数を使う HashMapオブジェクトを格納するには、HashMap型変数ではなくMap型変数を使います。 // HashMapオブジェクトの生成 Map<String, String> map = new HashMap<String, String>(); HashMapはMapの実装の一つに過ぎません。HashMap</string,></string,>…
Javaでは言語仕様的に多重継承が許されていません。これは、メソッド名が重複した場合の処置など、多重継承が様々な問題を引き起こしやすいからです(C++でプログラムを書くとよくわかります)。とはいえ、どうしても多重継承をしたい場合というのもあります…
PHPでは言語仕様的に多重継承が許されていません。これは、メソッド名が重複した場合の処置など、多重継承が様々な問題を引き起こしやすいからです(C++でプログラムを書くとよくわかります)。とはいえ、どうしても多重継承をしたい場合というのもあります…
ストリートビューで街中をスムーズに移動するためのアプリケーションを作りました。SmoothWalk powered by Google Maps Street View Googleマップのストリートビューは非常に興味深い機能ですが、繰り返し矢印を押して移動するのは結構面倒です。そこで、一…
ストリートビューで自動散策するプログラム、AutoWalk by Street Viewを作成した。 自分のWEBサイトへの掲載方法 次のようなHTMLを作成することで、自分のWEBサイトに自動散策プログラムを埋め込むことができる。初期地点は自由に設定できるので、自分の街を…
(2008-08-15)『Googleマップ上でストリートビュー対応の道を青色ハイライト表示する(GStreetviewOverlay)』を追記しました 先日、Google Mapsのストリートビュー日本版が公開されたところですが、早速Google Maps APIを用いてストリートビューをいじってみ…
よくJavaの解説には、VectorとArrayListの違いはスレッドセーフであるかないかだということが書かれている。そのような解説を読むと、スレッドセーフな可変長配列がほしい場合にはVectorを使えば良いと思ってしまいそうだが、私は同期を目的としてもVectorは…
多くのプログラミング言語では、任意の底を持つ対数を計算するために一工夫が必要だ。 PHP PHPで任意の底の対数得るのは簡単だ。log関数を用いて次のように書く。第二引数を省略するとネイピア数(自然対数の底)eが底となる。 しかし、このように書ける言…
doubleはNaN*1を値として取ることができる(その他にも、正の無限大、負の無限大をとることもできる)。これはIEEE 754で決められている。 NaNはNaNと比較しても等しくないという性質を持っている。つまり、 // aはNaNになる。 double a = 0.0 / 0.0; System…
ハッシュは遅いという意見があるようだが、実装や使い方を誤らなければ、基本的にツリーよりハッシュの方が速い。(この記事は以前書いた「ハッシュは本当に遅いのか?いや、遅くない(反語)」を簡潔にまとめたものです) ハッシュとツリーの速度を比較した…
HTMLエスケープやURLエンコード、ハッシュ関数など、WEBアプリケーション作成においてよく使うPHPの関数をまとめた。 HTMLエスケープ HTML中で使われる『&』や『<』、『>』などの記号を、『&』や『<』、『>』などに書き換えるのがHTMLエスケープだ…
PHPやJavaで、staticメソッドしか持たないクラスを作るとき(例えばJavaのMathクラスのようなクラス)には、そのクラスのインスタンスが生成できないようにする必要がある(staticメソッドにインスタンス経由でメソッドにアクセスするのは明らかに無駄だ。だ…
JavaScript関連のサイトはたくさんあるが、ある程度信頼できるリファレンスのようなものがなかなか見つからない(JavaScript歴が短いせいかもしれないけど)。とりあえず見つけたものをメモ代わりに書いておく。 Core JavaScript 1.5 Reference - mozilla de…