ArrayList<ArrayList<Double>> dataSet = new ArrayList<ArrayList<Double>>(); // 产生簇1 for (int i = 0; i < CLUSTER1_NUM; i++) { ArrayList<Double> cluster1 = new ArrayList<Double>(); cluster1.add(1 + Math.random() * 2); cluster1.add(1 + Math.random() * 2); dataSet.add(cluster1); } // 产生簇2 for (int i = 0; i < CLUSTER2_NUM; i++) { ArrayList<Double> cluster2 = new ArrayList<Double>(); cluster2.add(Math.random()); cluster2.add(Math.random()); dataSet.add(cluster2); } List<Dorminfo> dorminfoListSend = new ArrayList<Dorminfo>(); System.out.println("dorminfoList = " + dorminfoList); for (Dorminfo dorminfo : dorminfoList) { System.out.println("dorminfo = " + dorminfo); System.out.println("stuinfoMapper = " + stuinfoMapper); List<Stuinfo> stuinfosListTwo = stuinfoMapper.countSusheID(dorminfo.getDormid()); if (stuinfosListTwo.size() < dorminfo.getDormnum()) { dorminfoListSend.add(dorminfo); } }请详细解释
时间: 2023-06-26 20:03:11 浏览: 95
c#,net面最新试题
这段代码主要分为两个部分:
1. 数据集生成部分
首先定义了一个空的ArrayList<ArrayList<Double>>类型的数据集,接着产生了两个簇,分别是簇1和簇2。簇1中包含了CLUSTER1_NUM个随机生成的两个元素的ArrayList<Double>类型的数据,这两个元素的值在1~3之间。簇2中包含了CLUSTER2_NUM个随机生成的两个元素的ArrayList<Double>类型的数据,这两个元素的值在0~1之间。
这段代码中使用了ArrayList<Double>类型来保存每个数据点的坐标,ArrayList<ArrayList<Double>>则用来保存整个数据集。
2. 数据库查询部分
此部分代码先定义了一个空的List<Dorminfo>类型的dorminfoListSend,该类型表示宿舍信息列表。然后遍历宿舍信息列表dorminfoList,对于每个宿舍信息对象dorminfo,使用stuinfoMapper.countSusheID(dorminfo.getDormid())查询该宿舍中已有的学生信息列表,查询结果保存在List<Stuinfo>类型的stuinfosListTwo中。如果该宿舍已有的学生数量小于该宿舍的容纳人数dorminfo.getDormnum(),则将该宿舍信息对象dorminfo加入到dorminfoListSend中。
最终,dorminfoListSend中保存的就是还有空余床位的宿舍信息对象列表。
阅读全文