[项目bug收集整理2] Map的key,如果是非内置对象,需要自己实现hashCode和equals方法

bug 背景描述:

有一个map, Map<App,Integer> map; 这个map中含有某个app的key(debug的时候看的),但是get和containKey(app)都得不到。

由于没有对App类实现hashCode和equals方法,导致默认会用内存指针地址进行hash比较。

由于存入map中的app对象的地址和后来取出的地址可能不等(基本不会相等),故导致放得进去,取不出来。

建议:

1. 手动实现hashCode和equals方法

2. 如果不想实现该2个方法,建议用普通的内置对象,如Integer,String等作为key.

posted @ 2013-11-05 11:08  akingseu  阅读(198)  评论(0编辑  收藏  举报