日期:2014-05-20  浏览次数:20666 次

求助:Java Map
Product p = new Product();
p.setProductid(1L);
Product p1 = new Product();
p1.setProductid(1L);
Map<Product,Integer> map = new HashMap<Product, Integer>();
System.out.println(map.get(p1));    //结果是null  因为地址不一样


请问我要怎么才能让map取出来的不是null

------解决方案--------------------
你都没有想 HashMap中放值,要put以后才能取出来的。。你都没放任何对象进去当然是空了。

------解决方案--------------------
你这不是还没往里加么……
------解决方案--------------------
引用:
源代码是这样
Product p = new Product();
p.setProductid(1L);
Product p1 = new Product();
p1.setProductid(1L);
Map<Product,Integer> map = new HashMap<Product, Integer>();
map.put(p,1);
System.out.println(map.get(p1));    //结果是null  因为地址不一样



有一种东西叫重写hashCode和equals方法