记录做毕设时遇到的问题及解决办法,推荐算法,矩阵计算时要二维数组
首先我要从表中取出三个列,userid shopid eval
orderMapper中这样写,就是一个简单的查询
@Select("select user_id,shop_id,eval FROM t_order WHERe state=1")
List itemcforder();
我想做的是 userid为行 shopid为列的 eval评分为值的二维数组,看大家说用map什么的我不太明白,因为我的shopid和userid都可能分别有重复。(这是用户对购买的商品进行打分的记录)下面就看代码吧。
看完整代码吧
Listorder = orderMapper.itemcforder(); int k = 0; int sample = 0; List userid=new ArrayList (); List shopid=new ArrayList (); for(int i = 0; i < order.size();i++){ boolean booluser = userid.contains(order.get(i).getUserId()); if(!booluser){ sample++;//有sample个用户 userid.add(order.get(i).getUserId()); } boolean boolshop = shopid.contains(order.get(i).getShopId()); if(!boolshop){ k++;//有k种商品 shopid.add(order.get(i).getShopId()); } } int[][] us = new int[sample][k]; for (int i=0;i 从数据库中查询出来userid和shopid后,定义两个list用来存放shopid和userid,上面那段for循环就是将数据库查询出来的userid和shopid放入自己定义的相应的list中,并记录大小,下面定义评分二维数组的时候方便使用,下面那段就是在评分数组us中填充值。如果us数组的i(userid)和j(shopid)对应的查询结果的userid和shopid就将其放入。(不用关心我的赋值~大家付自己的值就好。)
以上仅供参考,欢迎大家指点。(因为这个方法真的太笨了 (T.T) )



