java,集合框架中为什么输出的键值value 是编码 不是自定义的字符串(有代码)?

packageHashmap;importjava.util.HashMap;importjava.util.Map;publicclassHashMapDemo{pub... package Hashmap;

import java.util.HashMap;
import java.util.Map;

public class HashMapDemo {
public static void main(String[] args) {

//创建学院对象-
Student s1=new Student("李明","男");
Student s2=new Student("丽丽","女");
//创建保存键值集合对象
Map<String, Student> studentmap=new HashMap<String, Student>();
//把英文名按照键值存储在 hashmap;
studentmap.put("Jack",s1);
studentmap.put("Rose",s2);
//打印出键集
System.out.println("键值"+studentmap.keySet());
//打印值集
System.out.println("值集"+studentmap.values());
//打印键值对集合
System.out.println("键值集合"+studentmap);
//判断是否存在key
String key="Jack";
if(studentmap.containsKey(key)){
Student s=(Student) studentmap.get(key);
System.out.println("学员姓名"+s.getName());

}
for(String a:studentmap.keySet()){
System.out.println(key);
}

for(Student s:studentmap.values()){
System.out.println(s.getName()+"\t"+s.getGender());
}
}
}
-------------------------------------------------------------------------------------------
控制台输出
键值[Jack, Rose]
值集[Hashmap.Student@154ab8e4, Hashmap.Student@5cb08ba7]
键值集合{Jack=Hashmap.Student@154ab8e4, Rose=Hashmap.Student@5cb08ba7}
学员姓名李明
Jack
Jack
李明 男
丽丽 女
展开
 我来答
百度网友85cd0964c
2015-08-17 · TA获得超过385个赞
知道小有建树答主
回答量:204
采纳率:0%
帮助的人:244万
展开全部
输出的是Student类对象的存储地址。因为你的值不是String而是Student类的对象,而你Student类的对象我猜没有重写toString()方法,所以在系统检测到print方法而自动调用toString()方法的时候,就会输出地址。如果想要输出别的东西,可以重写toString方法让它输出你想要的字符串即可。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zy1404
2015-08-17 · TA获得超过1387个赞
知道小有建树答主
回答量:784
采纳率:100%
帮助的人:463万
展开全部
因为你没有重新写student 的tostring方法。
想要输出你可以重新头String方法如下;
public String toString()
{
return getName()
+" ”+“getGender();

}
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式