java

ApacheのHttpClient 4でPOSTメソッドでも自動的にリダイレクトする方法メモ

HttpClient 4ってPOSTリクエストの時に相手のサーバが302を返してきても自動的にリダイレクトしてくれないんです。 自分でリダイレクトするしかないかなーって思ってたところにいい方法を見つけたのでメモします。 DefaultHttpClient client = new DefaultHt…

JSON-lib 2.4のバグを見つけた気がする

JavaでJSONを扱うときにJSON-libを使ってるんですが、JSON文字列からJSONObjectにパースするところでバグっぽいのに遭遇しました。 以下のJSON文字列をパースしようとするとClassCastExceptionが出ます。 {"hoge":{"{}":"fuga"}} 確認したのは以下のコード。…

ナウなヤングのsleep事情

Javaで一定時間sleepする時Thread.sleep()を使っていたんですけど、もっとナウい方法があったのでメモしておきます。 try { // レガシー極まりない5秒sleep Thread.sleep(5000); } catch(InterruptedException e) {} try { // ナウなヤングの5秒sleep TimeU…

僕はJavaのWeakHashMapを勘違いしていたというメモ

JavaにWeakHashMapというクラスがあって、僕はこれをvalueを弱参照で持てるHashMapだと思ってたんですけど、本当はkeyを弱参照で持つHashMapだったのでメモしておきます。どういうことかって言うと、僕はこんなことを期待していたわけです。 Map<String, String> m = new Wea</string,>…

AOJ 0030 Sum of Integers

AOJ 0030 Sum of Integersです。 import java.util.Scanner; public class Main { private static Scanner s = new Scanner(System.in); public static void main(String[] args) { while (true) { int[] in = nextInput(); if (in[0] == 0 && in[1] == 0) {…

AOJ 0033 Balls

頻出典型アルゴリズムの演習問題としてよさげなやつ を上から順に解いていこう企画。最初の問題は「AOJ 0033 Balls」 深さ優先探索って書いてあったけど、これでいいのかな。 import java.util.Scanner; public class Main { private static Scanner s = new…

JavaでUTCな時間文字列を取得する方法

Javaで"2011-09-07T00:00:00Z"みたいな文字列を作りたかったのに、タイムゾーンの設定がうまく行かなくてハマってました。DateFormatにsetTimeZoneする必要があったようです。忘れた時のためにメモを残します。 Calendar cal = Calendar.getInstance(TimeZon…

LinuxにOracleのJDKをインストールしたときのメモ

Linux(OpenSUSE 11.4 64bit)にOracleのJDKをインストールしたときのメモ。 インストール http://java.sun.com/javase/ja/6/download.html からJDKをダウンロードする。 $ chmod +x jdk-6u24-linux-x64-rpm.bin $ sudo ./jdk-6u24-linux-x64-rpm.bin $ # 途中…

AmazonSQSを簡単に使えるライブラリを書いたので使い方とか #jawsug

うちの会社ではAmazon SQSをバリバリ使ってるんですが、巷では全然流行ってないらしいので、簡単に扱えるライブラリを書きました。javaのBlockingQueueインターフェースを実装しているので、普段使っているQueueと差し替えることで簡単にSQSを利用することが…

深さ優先探索と幅優先探索の簡単な実装方法

深さ優先探索と幅優先探索は、実は簡単に実装することができます。次のインターフェースを実装したクラスで例を見ていきます。 interface Node { public String getName(); public List<Node> getChildren(); } 深さ優先探索 深さ優先探索は以下の手順で実装できま</node>…

SRM 497 DIV2

金曜日にあったSRM。 250 Filtering 問題:http://www.topcoder.com/stat?c=problem_statement&pm=11323&rd=14426 public class Filtering { public int[] designFilter(int[] sizes, String outcome) { int min = 100; int max = 1; for(int i=0; i

SRM 496 DIV2

250 AnagramFree 問題読まずにテストケースから判断しました。 なんかあってたのでよし。 import java.util.Set; import java.util.HashSet; import java.util.Arrays; public class AnagramFree { public int getMaximumSubset(String[] s) { Set<String> subsets =</string>…

SRM 494 Div2

250 InterestingParty 与えられた単語の集合から一番多く出現した単語の出現回数を求めよ。と理解。 firstとsecondがありますが、どちらも同じように扱ってよさそうでした。 なんか読み返してみるといろいろ直したくなりますね。 まあSystem Testは通過した…

二部グラフ判定問題をJavaで

プログラミングコンテストチャレンジブックのP93から書いてある「二部グラフ判定」をJavaで書いてみました。問題はこちら ■ 2部グラフ判定問題 頂点数nの無向グラフが与えられます。隣接している頂点同士が違う色になるように、頂点に色を塗っていきます。 2…

クラスカル法をJavaでリッチに書いたら遅かった。

id:nise_nabeさんがクラスカル法のコードを書いてたので、僕も書いて見ました。 「SRM492 時をかけるセールスマン」が解けたので多分合ってると思います。長いのでideoneに貼ってます。 http://ideone.com/3vtvW実行速度はid:nise_nabeさんのやつの2倍弱くら…

JavaのExecutorが便利

JDK5.0からjava.util.concurrentパッケージが追加され、マルチスレッドのサポートが強化されたようです。このパッケージに含まれるExecutorを使用すると、WorkerThreadパターンの実装がすごく簡単になります。サンプルpackage net.mrdad.blog.samples.multit…

ActiveObjectsを使ってみる

ActiveObjectsはJavaで使える軽量のORマッパです。ActiveRecordに強く影響を受けているようです。簡単な使い方をまとめます。サポートされているデータベース以下のRDBMSがサポートされているようです。 MySQL Derby Oracle PostgreSQL Microsoft SQL Server…

Ruby on Java - つまりJRuby

JRubyはJavaで実装されたRubyのインタプリタです。JRubyの凄いところは、JavaとRubyのコード間で双方向のアクセスを可能にしているところです。その素晴らしさを伝えるために、双方向アクセスの例を用意しました。下準備JRubyのダウンロードページから、自分…