찾다

 >  Q&A  >  본문

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新手。

迷茫迷茫2838일 전638

모든 응답(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
  • 취소회신하다