検索

ホームページ  >  に質問  >  本文

java - hashmap如何获取键值?

HashMap<Teacher,Student> one = new HashMap<>();//Teacher,student都是自定义的类
one.put(wang,wan);//one.put(Teacher,Student)

应该如何获取hashMap.key我google了发现一些做法但是都没有什么用
例如

Teacher[] i = one.keyset().toArray(new Teacher[0]);

我想问一下如何获取key同时可以新定义一个对象来引用key
主要我无法解决的是one.keyset().toArray(new Teacher[0])返回的是一个超类,我没有办法强制转化,希望可以给我一点提示或者解决的方法,java新手。

迷茫迷茫2784日前611

全員に返信(4)返信します

  • 高洛峰

    高洛峰2017-04-17 15:32:36

    toArray メソッドの本体では、渡された型に基づく強制的な型変換が使用されます。 new Teacher[0] は型の転送に使用されるため、再利用するには

    を直接記述することをお勧めします。 リーリー

    この方法では、渡された配列が埋められてから返されるため、より効率的です。

    返事
    0
  • 怪我咯

    怪我咯2017-04-17 15:32:36

    リーリー

    toArray は配列を返します

    返事
    0
  • 阿神

    阿神2017-04-17 15:32:36

    ハッシュキーの取得については、API ドキュメントをご自身で参照してください。 Java を学習するには、jdk に慣れることが非常に重要です。 jdkにはそのようなメソッドがあることを保証します。ハッシュマップまたはその親クラスのドキュメントを参照してください。

    この定義について:

    リーリー

    私だったら、次のことを選択します:

    リーリー

    前の定義では型情報が失われるため、必要な型を取得するには強制的に変換する必要があり、非常に危険です。これはジェネリックデザインの本来の意図にも違反します。

    上。

    返事
    0
  • 迷茫

    迷茫2017-04-17 15:32:36

    これが私がやったことです

    リーリー

    これまで私が間違っていたのは、マップを使用するときに型損失エラーがあったためかもしれません。@驽马

    のエラーをご指摘いただきありがとうございます。

    返事
    0
  • キャンセル返事