• ベストアンサー
  • すぐに回答を!

JAVAのハッシュテーブルについて

  • 質問No.2288457
  • 閲覧数237
  • ありがとう数4
  • 回答数3

お礼率 60% (3/5)

私は、ハッシュテーブルを使い、商品表を作っているのですが、ハッシュテーブルの中身をint型に変換できません。
どうしたら、int型に変換できるか教えていただけませんか??

自分ではいろいろな方法を試したつもりなのですが。
お願いします

質問者が選んだベストアンサー

  • 回答No.3
  • ベストアンサー

ベストアンサー率 44% (706/1571)

No.2へのお礼をみて。
この書き方だとHashtableにはint型の値ではなく文字列が入っています。
> int i = ((Integer)nedan.get("aa[0]")).intValue();
ここを
String s = ((String)nedan.get("aa[0]"));
int i = Integer.parseInt(s);
という感じに直してください。

あるいは、Hashtableに保存する前にint型変換してからIntegerでラップしてHashtableに保存して下さい。
お礼コメント
staku

お礼率 60% (3/5)

ありがとうございます。
できました。
これからも分からないことがあるかもしれないのでその時はお願いします。
投稿日時:2006/07/20 22:29

その他の回答 (全2件)

  • 回答No.2

ベストアンサー率 44% (706/1571)

No.1に書かれた追加の質問について。
ファイルから読み込むときに何型で読み込んで、それをどのようにHashtableに入れていますか?
エラーからキャストに失敗していることは分かりますが、具体的な問題点はコードを見ないと分かりません。
お礼コメント
staku

お礼率 60% (3/5)

String Line;
while( ( Line = in.readLine() ) != null )
{
String aa = Line.split(",");
Hashtable nedan = new Hashtable();
nedan.put(aa[0],aa[1]);
int i = ((Integer)nedan.get("aa[0]")).intValue();
i=i+3;
System.out.println(i);
}

こんな感じです。お願いします。
投稿日時:2006/07/20 21:43
  • 回答No.1

ベストアンサー率 44% (706/1571)

HashtableにはObjectのサブクラスしか保存できません。
int型の値はそのままでは保存できないのでIntegerでラップします。

int i=1;
Hashtable h = new Hashtable();

h.set("one", new Integer(i));
i = ((Integer)h.get("one")).intValue();

こんな感じになります。
お礼コメント
staku

お礼率 60% (3/5)

ありがとうございます。

もうひとつ質問なのですが、ファイルから読み込んでハッシュテーブルに入れて、intに変換するにはどうしたらよいでしょうか?

ファイルの中身は数値です。

ハッシュテーブルに入れることはできたのですが、その後intに変換しようとするとエラーが出てしまいます。

エラーは
Exception in thread "main" java.lang.ClassCastException
at Main.main(Main.java:22)
です。
投稿日時:2006/07/20 21:09
関連するQ&A

その他の関連するQ&Aをキーワードで探す

ピックアップ

ページ先頭へ