删除方法这样写对吗

删除方法这样写对吗

1
2
3
4
5
6
7
8
9
//菜品删除方法
    public void deleteFoodById(String id){
        List<Map<String, Object>> list = new ArrayList<Map<String,Object>>();
        list=this.searchSongById(id);
        if(list!=null){
            db.remove(list);
        }
    }

}

public List<Map<String, Object>> searchSongById(String id) {

List<Map<String, Object>> list = new ArrayList<Map<String,Object>>();

for (int i = 0; i < db.size(); i++) {

Map<String, Object> map = db.get(i);

if (id.equals(map.get("id"))) {

list.add(map);

return list;

}

}

return null;

}




正在回答

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

2回答

删除的时候,我们是一个一个的进行删除,所以这个地方,不建议使用List,直接使用Map就可以满足要求了。祝学习愉快~

提问者 星辰3619607 2017-12-22 19:09:50

应该怎么改呢


  • 根据ID查询的数据,就是一条,所以不需要返回多条数据了,返回值直接改为map类型就可以了。searchSongById方法改为public Map<String, Object> searchSongById(String id);相应的地方再做修改就可以了。祝学习愉快~
    2017-12-22 19:17:52
  • 提问者 星辰3619607 回复 一叶知秋519 #2
    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; } public void deleteFoodById(String id){ Map<String, Object> map = new HashMap<String, Object>(); map=this.searchSongById(id); if(map!=null){ db.remove(map); } }这样吗?
    2017-12-22 19:36:09
  • 好帮手慕珊 回复 提问者 星辰3619607 #3
    查询方法中,if语句如果满足条件,那么不是将id放到一个新定义的map中,而是从List中取出map并返回,也就是db.get(i)就是符合要求的map,然后不用创建map对象,只用声明map为null就可以了,方法最后还要返回null。另外if语句的条件,不是map.get("id"),应该是db.get(i).get("id"),也就是先从db中取出map,然后再取出id为key的value值。删除的代码没什么问题。
    2017-12-24 08:54:03
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

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

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

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

在线咨询

领取优惠

免费试听

领取大纲

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