我有一个清单
public function dataview($query)
{
$stmt = $this->db->prepare("SELECT * from login ORDER BY username");
$stmt->execute();
if($stmt->rowCount()>0)
{
while($row=$stmt->fetch(PDO::FETCH_ASSOC)) {
echo "<tr>";
echo "<td> ".$row['user_id']." </td>";
echo "<td> ".$row['username']." </td>";
echo '<td><a target="_blank" onclick="pop_up(this)" href=VIEWSAMPLE.PHP?user_id='.$row['user_id'].'>'.$row["username"].'</a></td>';
echo "<td> ".$row['password']." </td>";
echo '<td><a style="float:left" target="_blank" href="update.php?user_id=' . $row["user_id"] . '>'.$row["username"].'"<input name="image" type="image" value="edit" onclick="pop_up(this)"><image src="image/EDIT.png" class="img-responsive" width="25px"></a>
<a style="float:left" href="delete.php?user_id=' . $row["user_id"] . '>" <input name="image" type="image" value="delete" onclick="return confirm(\'are you sure?\')"><image src="image/DELETE.png" class="img-responsive" width="25px"></a></td>';
echo "</tr>";
}
}
else
{
echo "<tr>";
"<td>Nothing here...</td>";
"</tr>";
}
}
}
我们怎么能这样排序?是否可以在Comparator实现上比较子类对象?
由于
答案 0 :(得分:2)
请参阅Collections.sort,其中ndarray
必须T
但是我会将implements Comparable<T>
绑定到已知具有T
final
的基类,以确保在将苹果与梨进行比较时将它们视为水果
修改强>: 根据您的评论,您可以采用上述建议,但实施Comparable的替代方法是撰写Comparator并使用Collections.sort(List, Comparator)
无论哪种方式,如果你有苹果,梨或橙子,那么我会建议制作一个抽象类水果,并根据水果实施可比较/比较 - 这是比较苹果和梨等的唯一明智的方法 - 通过已知的属性对所有子类都是通用的。
示例代码:
compareTo
答案 1 :(得分:0)
我们如何对此进行排序?
所有元素必须相互比较,即<T extends Comparable<? super T>>
。这意味着T
类型的元素不仅可以与T相媲美,而且可以与super to T
类型的元素相媲美。
如果您没有指定比较器,则在该情况下,列表将使用自然排序按升序排序。在您的情况下,该类将具有多个字段,并且使用自定义比较器是有意义的。
是否可以比较Comparator上的子类对象 执行?
是的。如果您指定<T extends Comparable<T>>
,那么只有T
类型的元素才具有可比性,但如果您使用<T extends Comparable<? super T>>
,那么超类的元素也会被包含在内。