2009/09/12(土) [n年前の日記]
#2 [prog][java] Javaソース側を作成中
テーブルは目標容量前後のサイズになりそうなので、テーブルバイナリを読み出すJavaソースを書いているのだけど。これがまた、おかしな値しか出てこない。なんでや。バグバグや。
byte配列を読み出す際、最上位ビットが使われているデータがマイナス値として扱われておかしなことになったり。あるいは、バイナリ化したデータがフォーマットと一致していなかったり。後者はともかく、前者に関しては、Javaの言語仕様に問題があるように思える。どうして unsigned char 等を用意しておかなかったのだろう。
さておき。今回試しにHashtableを使ってみたり。値が飛び飛びなので、検索のために総当たりで、なんてことをしてたら時間がかかってしまう。こんなときこそハッシュを利用すべきなのだろうと。
が、eclipse上で動かす分には問題がなかったけど、コマンドプロンプトで javac TestHoge などとやると、エラーというか警告が出てくる。
Perlのように簡単に使えないのだろうか。>JavaのHashtable。
byte配列を読み出す際、最上位ビットが使われているデータがマイナス値として扱われておかしなことになったり。あるいは、バイナリ化したデータがフォーマットと一致していなかったり。後者はともかく、前者に関しては、Javaの言語仕様に問題があるように思える。どうして unsigned char 等を用意しておかなかったのだろう。
さておき。今回試しにHashtableを使ってみたり。値が飛び飛びなので、検索のために総当たりで、なんてことをしてたら時間がかかってしまう。こんなときこそハッシュを利用すべきなのだろうと。
が、eclipse上で動かす分には問題がなかったけど、コマンドプロンプトで javac TestHoge などとやると、エラーというか警告が出てくる。
449 :デフォルトの名無しさん :05/02/23 18:32:04だそうで。
import java.util.Hashtable;
class HashtableTest {
public static void main(String args[]) {
Hashtable numbers = new Hashtable();
numbers.put("one", new Integer(1));
}
}
を javac -Xlint:unchecked HashtableTest.java すると、
警告: [unchecked] raw型 java.util.Hashtable のメンバとしての put(K,V) への無検査呼び出しです。
と出てくるのですが、どうしたら回避できますか?
450 :デフォルトの名無しさん :05/02/23 19:14:26
>>449
ソースを変えずに、
javac -source 1.4 -Xlint:unchecked HashtableTest.java
とするか、あるいは、ソースを、
Hashtable<String, Integer> numbers = new Hashtable<String, Integer>();
みたく変える。
Perlのように簡単に使えないのだろうか。>JavaのHashtable。
[ ツッコむ ]
以上です。