这段代码使用了什么方法public void sortByQuantity() { sort(0, drugs.size() - 1, new Comparator<Drug>() { public int compare(Drug d1, Drug d2) { return d1.quantity - d2.quantity; } }); }
时间: 2024-02-10 18:31:13 浏览: 92
这段代码使用了快速排序(Quick Sort)算法对一个药品列表按照数量进行排序。其中,`sortByQuantity()` 方法调用了一个自定义的 `sort()` 方法,该方法接受三个参数,分别是当前要排序的子列表的左右边界和一个比较器 `cmp`。在这里,比较器使用匿名内部类的方式实现,将药品的数量作为比较的依据,从而指定了排序规则。具体实现中,`sort()` 方法会选择一个 pivot 元素,然后将列表中小于 pivot 的元素移到 pivot 的左边,大于 pivot 的元素移到 pivot 的右边,这样 pivot 就处于列表的正确位置上了。然后对 pivot 左边的元素和右边的元素进行递归排序,直到整个列表都有序为止。`sortByQuantity()` 方法会将比较器作为参数传递给 `sort()` 方法,调用 `sort()` 方法进行排序。最终,药品列表将按照数量从小到大的顺序排列。
相关问题
这个代码用了什么方法 public void sortBySale() { PriorityQueue<Drug> pq = new PriorityQueue<Drug>(new Comparator<Drug>() { public int compare(Drug d1, Drug d2) { if (d1.sale < d2.sale) return -1; else if (d1.sale > d2.sale) return 1; else return 0; } }); for (int i = 0; i < drugs.size(); i++) { pq.offer(drugs.get(i)); } drugs.clear(); while (!pq.isEmpty()) { drugs.add(pq.poll()); } }
这段代码使用了优先队列(PriorityQueue)对一个药品列表按照销量进行排序。首先创建了一个 `PriorityQueue` 对象 `pq`,并通过传入一个自定义的比较器(`Comparator`)来指定优先级的比较规则。在比较器中,如果药品 `d1` 的销量小于药品 `d2` 的销量,返回 -1;如果药品 `d1` 的销量大于药品 `d2` 的销量,返回 1;否则返回 0。然后将药品列表中的所有药品添加到优先队列中,这样优先队列会根据销量的大小自动对药品进行排序。最后清空药品列表并将排序后的药品再添加回去,这样药品列表就按照销量从小到大的顺序排列了。
<title>医院住院管理系统</title> </head> <body> <div class="title"> <h2>药品发放</h2> </div> <div class="main"> <form id="drugs_delivery"> <table> <tr> <td> <p class="short-input ue-clear"> <label><font color="red">*</font>住院号:</label> </p> </td> <td> <p class="short-input ue-clear"> <input results="s" type="search" readonly name="patientId" id="patientId" /> </p> </td> <td> <p class="short-input ue-clear"> <label><font color="red">*</font>姓名:</label> </p> </td> <td> <p class="short-input ue-clear"> <input type="text" readonly name="patientName" id="patientName" /> </p> </td> </tr> <tr> <td> <p class="short-input ue-clear"> <label><font color="red">*</font>药品编号:</label> </p> </td> <td> <p class="short-input ue-clear"> <input type="search" results="s" readonly name="drugId" id="drugsId" /> </p> </td> <td> <p class="short-input ue-clear"> <label>数量:</label> </p> </td> <td> <p class="short-input ue-clear"> <input type="text" name="drugCount" id="num" onblur="checkdrugsnum()" /> <input type="hidden" name="num1" id="num1"> <p class="short-input ue-clear"> </td> </tr> <tr> <td> <p class="short-inpue-clear"> <label><font color="red">*</font>药品名称:</label> </p> </td> <td> <p cla
ss="short-input ue-clear"> <input type="text" readonly name="drugName" id="drugsName" /> </p> </td> <td> <p class="short-inpue-clear"> <label>规格:</label> </p> </td> <td> <p class="short-input ue-clear"> <input type="text" readonly name="drugSpec" id="drugsSpec" /> </p> </td> </tr> <tr> <td> <p class="short-input ue-clear"> <label>剂量:</label> </p> </td> <td> <p class="short-input ue-clear"> <input type="text" readonly name="drugDosage" id="drugsDosage" /> </p> </td> <td> <p class="short-input ue-clear"> <label>单位:</label> </p> </td> <td> <p class="short-input ue-clear"> <input type="text" readonly name="drugUnit" id="drugsUnit" /> </p> </td> </tr> <tr> <td colspan="4"><label><font color="red">*</font>用法用量:</label><textarea rows="3" cols="30" name="drugUsage"></textarea></td> </tr> <tr> <td> <p class="short-input ue-clear"> <label>医生:</label> </p> </td> <td> <p class="short-input ue-clear"> <input type="text" readonly name="doctorName" id="doctorName" /> </p> </td> <td> <p class="short-input ue-clear"> <label>发放人:</label> </p> </td> <td> <p class="short-input ue-clear"> <input type="text" readonly name="deliveryName" id="deliveryName" value="自动填写" /> </p> </td> </tr> </table> <div class="btn"> <div class="button"> <p class="submit"> <input type="submit" value="确定" id="delivery_submit" /> </p> </div> </div> </form> </div> </body> </html>
阅读全文