for (int i = 0; i < list.size() - 1; i++) { for (int j = i; j < list.size(); j++) { if (list.get(i).getScore() < list.get(i).getScore()) { Student stu = list.get(i); //使用j作为索引获取对象,放到i索引位置上 list.set(i, list.get(j)); //将临时变量放到j索引位置上 list.set(j, stu);
时间: 2024-03-08 17:45:25 浏览: 49
这段代码实现了一个简单的选择排序,对一个存储学生对象的列表进行按照分数从高到低的排序。其中,使用了两个嵌套的 for 循环,第一个循环控制比较的次数,第二个循环用于比较和交换位置。如果第 i 个学生的分数小于第 j 个学生的分数,则交换这两个学生在列表中的位置,保证了分数高的学生在前面。在交换位置时,使用了一个临时变量stu来暂存第 i 个学生,便于交换。
相关问题
for (int i = 0; i < list.size(); i++) { for (int j = 0; j < list.get(i).size(); j++) { sheet.addCell(new Label(j, i + 1, list.get(i).get(j), arial12format));
这是一段 Java 代码,用于将一个二维列表 `list` 内容写入 Excel 表格中。代码使用了 jxl 库中的 `Label` 类,将列表中的元素逐个写入单元格中。其中 `i` 表示行数,`j` 表示列数,`list.get(i).get(j)` 获取二维列表中指定位置的元素值。`arial12format` 是一个格式化对象,用于设定单元格的字体、颜色等样式。最终生成的 Excel 表格就是按照二维列表的格式排列的。
// 建立用户数组 除了目标用户外 随机再抽取9个用户 String[] users = new String[10]; users[0] = this.userid; List<Users> usersList = this.usersDAO.getUsers(this.userid); System.out.println("users == > " + usersList.size()); } List<Goods> goodsList = this.goodsDAO.getAllGoods(); this.goods = new String[goodsList.size()]; for (int j = 0; j < goodsList.size(); j++) { this.goods[j] = goodsList.get(j).getGoodsid(); } // 建立二维数组 用户如果浏览了商品则标记为1未浏览则标记为0,之后计算用户之间的相似度 int[][] allUserGoodshist = new int[10][goodsList.size()]; for (int i = 0; i < 10; i++) { for (int j = 0; j < goodsList.size(); j++) { String goodsid = this.goods[j]; Hist hist = new Hist(); hist.setUsersid(users[i]); hist.setGoodsid(goodsid); List<Hist> histList = this.histDAO.getHistByCond(hist); } } for (int i = 0; i < 10; i++) { for (int j = 0; j < goodsList.size(); j++) { if (j == goodsList.size() - 1) { System.out.print(allUserGoodshist[i][j]); } else { System.out.print(allUserGoodshist[i][j] + " ,"); } } System.out.println(""); } this.targetUserCommentedGoods = new ArrayList<String>(); Hist hist = new Hist(); hist.setUsersid(this.userid); List<Hist> histList = this.histDAO.getHistByCond(hist); for (int i = 0; i < histList.size(); i++) { // 计算用户相似度,对相似度进行排序 this.calcUserSimilarity(allUserGoodshist, goodsList.size()); // 计算商品推荐度,进行排序 this.calcRecommendGoods(allUserGoodshist, goodsList.size()); // 处理并生成推荐商品列表 this.handleRecommendGoods(allUserGoodshist, goodsList.size()); String rommendId = ""; for (int i = 0; i < this.targetRecommendGoods.size(); i++) { String item = this.targetRecommendGoods.get(i); if (!commentedGoods.contains(item)) { if (i == this.targetRecommendGoods.size() - 1) { rommendId += item; } else { rommendId += item + ","; } } }
这段代码看起来是一个基于用户的推荐算法。首先,它建立了一个用户数组,并从数据库中获取了与目标用户有关联的用户列表。然后,它建立了一个二维数组,用于标记用户是否浏览过某个商品。接下来,它计算了用户之间的相似度,并对相似度进行排序。然后,它计算了商品的推荐度,并进行排序。最后,它处理并生成了推荐商品列表,将未评论过的商品添加到推荐列表中。
阅读全文