开发者社区> 问答> 正文

hashmap如何获取键值?

`HashMap 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])返回的是一个超类,我没有办法强制转化,希望可以给我一点提示或者解决的方法

展开
收起
蛮大人123 2016-03-05 16:38:40 2293 0
2 条回答
写回答
取消 提交回答
  • Map map = new HashMap(); map.put("1", "11"); map.put("2", "22"); System.out.println("里面的值有:"); Collection connection = map.values(); Iterator iterator = connection.iterator(); while (iterator.hasNext()) { System.out.println(iterator.next() + ".."); } System.out.println("里面的键有:"); Set key = map.keySet(); for (String string : key) { System.out.println(string); } System.out.println("里面的键值对是:"); Set> set = map.entrySet(); Iterator> iterator2 = set.iterator(); while (iterator2.hasNext()) { Map.Entry entry = iterator2.next(); System.out.println("键是:" + entry.getKey() + "值是:" + entry.getValue()); }
    2019-07-17 18:53:45
    赞同 展开评论 打赏
  • 我说我不帅他们就打我,还说我虚伪

    toArray方法体中是通过强制类型转化,是根据你传进去的类型进行强转的。你这个new Teacher[0]就是进行传类型用的,所以为了复用,建议直接写

    HashMap<Teacher,Student> map = new HashMap<>();//Teacher,student都是自定义的类
    ...
    Set<Teacher> set = map.keySet();
    Teacher[] teachers = set.toArray(new Teacher[set.size()])

    这样传进去的数组就会被填充,然后返回,效率高点。

    2019-07-17 18:53:45
    赞同 展开评论 打赏
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载