• ベストアンサー

javaで参照そのものを値として取得する事は出来ますか?

javaで参照そのものを値として取得する事は出来ますか? あるいは、Mapで同じ値のオブジェクトでも参照が異なれば異なるキーを作るようにする方法はありますか?

  • Java
  • 回答数1
  • ありがとう数3

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

  • ベストアンサー
  • mitoneko
  • ベストアンサー率58% (469/798)
回答No.1

 ObjectクラスのhashCodeメソッドが、そのような実装をされています。内部アドレスを整数値に変換する方法でハッシュを生成しているようです。  まぁ、大概のクラスは、ここからの派生でしょうから、委譲メソッドを作るなどして、このメソッドを大事に、自分の作ったサブクラスへ持ってくれば良いかと思います。

LangFan
質問者

お礼

返信ありがとうございます。 参考になりました。 IdentityHashMapという参照を用いたMapも見つかりました。

関連するQ&A

  • javaでは基本型の参照渡しは無理ですか?

    先日のjavaの授業で値渡しと参照渡しについて学びました。 授業では オブジェクトは参照渡しになり 基本型は値渡しにされる(参照渡しは不可能) と教えられました。 オブジェクトを値渡しにできないのはなんとなく納得できたのですが 基本型を参照渡しにできないのが納得できません。 そこで 1.基本型を参照渡しにすることはできないのか? 2.基本型を参照渡しすることができないのはなぜか? 3.オブジェクトを値渡しすることができないのはなぜか? の3点を教えて頂きたいです。 よろしくお願いします。

    • ベストアンサー
    • Java
  • 参照型のオフセット取得

    C++でリフレクションを実装するため、全メンバー変数のオフセット をoffsetofで取得し、メンバ変数名とオフセットをstd::mapに登録 しようとしています。 ここで質問なのですが、参照型に対してoffsetofを取得しようとすると アクセス違反で落ちてしまいます。原因を調べてみると、クラスの オブジェクトがobj、メンバ変数が参照型refだとすると、&obj.refは ref変数のアドレスを返すのでは無く、refが指している変数のアドレス を返してくるのが原因でした。 長くなりましたが、ref変数のアドレスを取得する方法、またはオフセット を取得する方法は無いのでしょうか?これが出来ないと、参照型については未サポートにするしか無くなってしまいます><

  • 同じデータベース内で値の参照

    あるA,B,Cのテーブルがあり、 Aの主キーはシーケンシャル番号が振られています。 この値を参照し、B,Cのテーブルのフィールドに挿入したいのですが、 私のやり方は (1)まずAをInsertする (2)AでInsertしてできたシーケンシャル番号を取得し、 (3)BをInsertする (4)CをInsertする と少しややこしい方法しか思いつきませんでした。 何かよいアイデアがあれば教えていただけたら、ありがたいです。

  • html内でjavaをかき、そこで取得した値をst

    html内でjavaをかき、そこで取得した値をstrに入れています。 このstrという値をa.phpの中に入れてメール送信したいです。 <?php echo $_SERVER[REMOTE_ADDR]; $to = "メールアドレス"; $from = "メールアドレス"; $subject = "テスト" $message = "テスト1".$_["REMOTE_ADDR"]; ...と続いていき、最終的には、strに入ってる値をa.phpの中に入れて、端末情報と一緒にメールで送信したいです。 ここまでは作れたのですが、javaの方のstrに入れてある値をどのようにphpのメール送信のコードに書き込めば良いかわかりません、、、 どなたか分かる方、教えていただけませんでしょうか。

    • 締切済み
    • PHP
  • SQLのSUM関数で取得した値を参照する方法は?

    PHP4.xx + postgresを使っております。 さて、SQLのSUM関数で取得した値はPHPで どのように参照したらよいのでしょうか? 以下にソース例をあげておきます。 $sql = "select key1,sum(kin) from testDB where 条件 group by key1"; $rs_test = $db->getAll($sql,DB_FETCHMODE_ASSOC); foreach($rs_test as $rs_row){  item1 = $rs_row[key1];  item2 = ???????? <-ここでkinの集計を参照したい。 } sum(kin) as gokeiなどとするのかと思ったのですが、 これはこれで参照方法がわかりません。

    • ベストアンサー
    • PHP
  • count(*)で取得した値をJAVAの変数に代入するには?

    SQLの話なんですが、 count(*)で取得した値をJAVAの変数に代入するには?

    • ベストアンサー
    • Java
  • javaでunikodeの取得は?

    javaで『a~z』のunicodeの値を取得するにはどうすればよろしいですか?

  • PhoneGapとjavaの変数の取得

    TELEPHONY_SERVICEのgetDeviceId()で取得できる値をPhoneGapから取得する方法を教えてください。 直接取得できるなら直接の方法を教えてください。 MainActivity.javaにgetDeviceId()で取得した値をグローバル変数などに代入してPhoneGapでJavaScriptなどでその値を参照することができましたらその方法も教えてください。

    • ベストアンサー
    • Java
  • mapの値を全件取得

    いつも楽しく拝見させて頂いています。 mapオブジェクトをkeyの昇順でソートし、昇順でソートされた順にmapのvalueを取得したいって思ってます。 下記ソースで方針はあってますでしょうか? しかし下記ソースを実行すると※の行でClassCastExceptionが発生します。 String型にキャストしているつもりなのですが…なぜでしょうか? 初歩的な質問ですが宜しくお願いします。 ----------------------------------------以下ソース Map map = new TreeMap(); map.put(new Integer("12"), "000000000b"); map.put(new Integer("78"), "000000000a"); map.put(new Integer("39"), "000000000c"); map.put(new Integer("234"), "000000000g"); for(Iterator iterator = map.entrySet().iterator();iterator.hasNext();) {   Map.Entry entry = (Map.Entry)iterator.next(); ※ String key = (String)entry.getKey();   String value = (String)entry.getValue();   System.out.println(key + "=" + value);   } ・Jdk1.4.12 ・eclipse 3.0

    • ベストアンサー
    • Java
  • これは参照渡し・値渡ししてる事になりますか?

    Dim a As String Sub マクロ1() a = "test" Call マクロ2 a = Empty End Sub Sub マクロ2() MsgBox a End Sub これは参照渡し・値渡ししてる事になりますか? ByRefやByValを使わない限り、 参照渡しまたは値渡ししてるとは言えないのでしょうか? ご回答よろしくお願いします。

専門家に質問してみよう