问答详情
源自:6-4 学生选课---判断 Map 中是否包含指定的 key 和 value

但是么有查询出key值啊!

查出了包含,小红,但是该怎样还能返回小红的id值呢?

提问者:qq_noheartnoswe_04385033 2016-12-07 19:51

个回答

  • weibo_肖邦在对我微笑_0
    2016-12-09 21:54:44

    public void testEntrySet() {
    		// 通过entrySet方法,返回Map中的所有键值对
    		Set<Entry<String, Student>> entrySet = students.entrySet();
    		String st = new String("小红");
    		for (Entry<String, Student> entry : entrySet) {
    			System.out.println("取得键:" + entry.getKey());
    			System.out.println("对应的值为:" + entry.getValue().name);
    			//判断Value中name是否为"小红",true打印输出该键,false继续循环
    			if(entry.getValue().name.equals(st));
    				System.out.println("小红对应的ID为:" + entry.getKey());
    		}
    	}


  • weibo_肖邦在对我微笑_0
    2016-12-09 21:50:47

    通过Map接口中的方法

     Set<Map.Entry<K,V>>    entrySet()
              返回此映射中包含的映射关系的 Set 视图。    

    获取HashMap集合中的键值对映射关系,然后使用Map子接口Entry中的getValue()方法通过foreach历遍集合并找到"小红",打印出对应的键就行了(getKey()),具体使用方法查阅API。

    其实修改一下老师的代码就可以实现了,下面会放出我修改的代码,觉得有帮助的话麻烦采纳一下。