方法哪里写的不对

方法哪里写的不对

1<br>1
2
3
4
5
6
7
8
9
10
11
12
13
// 菜品删除方法
public void deleteFoodById(String id) {
    Map<String, Object> map = new HashMap<String, Object>();
    map = this.searchSongById(id);
    if (map != null) {
        for (int i = 0; i < db.size(); i++) {
            if (map.containsKey(db.get(i))) {
                map.remove(db.get(i));
            }
        }1<br>
 
    }
}
public Map<String, Object> searchSongById(String id) {
Map<String, Object> map = new HashMap<String, Object>();
for (int i = 0; i < db.size(); i++) {
if (id.equals(map.get("id"))) {
map.put("id", id);
return map;
}
}
return null;
}
<%
   int flag = (int)request.getAttribute("flag");
   String foodName = (String)request.getAttribute("foodName");
   String id = (String)request.getAttribute("id");
FoodDaolmpl foodDaolmpl = new FoodDaolmpl();
List<Map<String, Object>> db = foodDaolmpl.getAllFood();
switch(flag){
    case 0:
List<Map<String, Object>> db1 = foodDaolmpl.getAllFood();
    break;
    case 1:
    db = foodDaolmpl.getFoodByName(foodName);
    break;
    case 2:
    foodDaolmpl.deleteFoodById(id);
    db = foodDaolmpl.getAllFood();
}
if (!db.isEmpty()) {%>
<%for (Map<String, Object> map : db) {%>
<tr>
<td>
 <%=map.get("id")%>
</td>
<td>
 <%= map.get("foodName")%>
</td>
<td>
 <%=map.get("taste")%>
</td>
<td>
 <img src="<%= map.get("foodImage")%>">
</td>
<td>
 <%=map.get("price")%>
</td>
<td>
 <%=map.get("description")%>
</td>
</tr>
<%}%>
<%}%>


正在回答

登陆购买课程后可参与讨论,去登陆

2回答

http://class.imooc.com/course/qadetail/33068

可以看一下这个链接中关于方法问题的回答,你这里的删除方法,既然已经调用了查询方法进行查询了,就不用再对List进行循环了,直接删除即可。另外,注意循环删除集合数据时,一定要删除完毕就调用break,否则容易引起异常。所以一般都是先查询,然后根据查询结果进行删除。

祝学习愉快!

提问者 星辰3619607 2017-12-25 15:17:25
public Map<String, Object> searchSongById(String id) {
		Map<String, Object> map = null;
		for (int i = 0; i < db.size(); i++) {
			if (id.equals(db.get(i).get("id"))) {
			   map.put(id, "id");
							return map;
			}
		}
		return null;
	}
public void deleteFoodById(String id) {
Map<String, Object> map = null;
map = this.searchSongById(id);
if (map != null) {
db.remove(map);

}
}这样对吗??


  • searchSongById这个方法中,map.put(id, "id");不对,改为map=db.get(i),也就是从db中找到了符合要求的集合后,将集合取出来赋值给map即可。
    2017-12-25 16:32:21
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
从网页搭建入门Java Web2018版
  • 参与学习           人
  • 提交作业       1088    份
  • 解答问题       10205    个

如果你有Java语言基础,又想以后从事Java Web开发,那么本路径是你的不二选择!本路径从网页搭建开始入手,通过大量案例来学习Java Web基础。定能助你完成Java Web小白的蜕变!

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师