关于java Map containsValue的问题,紧急求助

hanyu852937 2012-08-05 02:16:39
代码:
public static void main(String args[]){
HashMap hs=getSetUpByType(86,2);
List neList=BiUtilBO.getNesByCata(86,4);
for(int i=0;i<neList.size();i++){
MNamedEntity mne=(MNamedEntity)neList.get(i);
System.out.println(mne.getNamedentity()+" "+hs.values()+" "+hs.containsValue(mne.getId())+" "+mne.getId());
}
}
打印结果:
晋中 [386, 387, 388, 389] false 386
榆次 [386, 387, 388, 389] false 387
介休 [386, 387, 388, 389] false 388
太谷 [386, 387, 388, 389] false 389
祁县 [386, 387, 388, 389] false 390
平遥 [386, 387, 388, 389] false 391
灵石 [386, 387, 388, 389] false 392
榆社 [386, 387, 388, 389] false 393
左权 [386, 387, 388, 389] false 394
和顺 [386, 387, 388, 389] false 395
晋阳 [386, 387, 388, 389] false 396
寿阳 [386, 387, 388, 389] false 397
为什么containsValue返回false,明明map.value中包含哪些ID
...全文
416 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
hanyu852937 2012-08-05
  • 打赏
  • 举报
回复
知道什么问题了,我的mneid是long型的,hs.put(m,rs.getInt("setup_id"));这里被写成int型了,多谢 haiercs
haiercs 2012-08-05
  • 打赏
  • 举报
回复
for(int i=0;i<neList.size();i++){
MNamedEntity mne=(MNamedEntity)neList.get(i);
System.out.println(mne.getNamedentity()+" "+hs.values()+" "+hs.containsValue(mne.getId())+" "+mne.getId());
}
把这段代码先写成这样看下是否类型问题
for(int i=0;i<neList.size();i++){
//MNamedEntity mne=(MNamedEntity)neList.get(i);
System.out.println(mne.getNamedentity()+" "+hs.values()+" "+hs.containsValue(386)+" "+mne.getId());
}
haiercs 2012-08-05
  • 打赏
  • 举报
回复
MNamedEntity中的id是什么类型
hanyu852937 2012-08-05
  • 打赏
  • 举报
回复
public static HashMap getSetUpByType(long uid,int type){
HashMap hs=new HashMap();
uid=UserBO.grpIdByUid(uid);
String sql="SELECT urs.setup_id setup_id FROM u_report_setup urs WHERE urs.uid=? AND urs.report_type=?";
Connection conn = null;
try {
conn = UtilDB.getConnection();
PreparedStatement stmt = conn.prepareStatement(sql);
stmt.setLong(1,uid);
stmt.setInt(2,type);
ResultSet rs = stmt.executeQuery();
int m=0;
while (rs.next()) {
hs.put(m,rs.getInt("setup_id"));
m++;
}
rs.close();
stmt.close();
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
if (conn != null)
conn.close();
} catch (Exception e1) {
}
}
return hs;
}
map中我是用mneid做的value值,代码hs.put(m,rs.getInt("setup_id"));中setup_id就是mneid
haiercs 2012-08-05
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]

hs.containsValue(mne.getId())
换成
hs.containsKey(mne.getId())
[/Quote]
不好意思,错误理解楼主提问的意思了,检查下hs中key和value类型是否一致
haiercs 2012-08-05
  • 打赏
  • 举报
回复
hs.containsValue(mne.getId())
换成
hs.containsKey(mne.getId())

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧