- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我需要 2 个对象:最大堆和最小堆。这两个对象将是相同的,但它们的某些方法(如 swap 或 bubbleUp)以不同的方式比较对象。只有比较线不同:
while (curr > 0 && (heap[parent].compareTo(heap[curr]) < 0)) {
创建具有存储信息的 boolean 值的堆类更好还是最小堆?或者更好地为最小和最大堆创建子类,它们将拥有自己的方法?
public abstract class Heap {
private int[] values = new int[];
public void SomeHeapMethod()
{
if(values[0].compareTo(values[1]) > 0 ) //this would be diffent for max and min heap
}
}
最佳答案
用各自的方法创建两个类。如果您正在创建一个类,它可以充当两个不同的类,那么您就违反了著名的 Clean Code 一书中的原则之一。
In object-oriented programming, the single responsibility principle states that every class should have a single responsibility, and that responsibility should be entirely encapsulated by the class. All its services should be narrowly aligned with that responsibility….
另一个角度是可读性,如果另一个程序员要查看您的代码,与两个多态性或两个类解决方案相比,很难发现一个类具有两种功能状态。
下面是我将如何使用多态性解决方案。其中共享功能被继承,自定义功能在每个类中定义。
public abstract class Heap {
private Integer[] values;
public int compare(int i , int j)
{
throw new RuntimeException("Not implemented");
}
public void SomeHeapMethod()
{
if(this.compare(values[0], values[1]) > 0)
return;
}
}
class MinHeap extends Heap
{
public int compare(int i , int j)
{
return i + j % 2;
}
}
class MaxHeap extends Heap
{
public int compare(int i , int j)
{
return i + j % 1;
}
}
关于java - 如何告知比较使用的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33682732/
有没有办法判断 Android 设备何时处于 sleep 模式?测试我的应用程序时,我按电源按钮关闭屏幕,需要等到 sleep 模式激活。然后,我使用 Google Cloud Messaging (
我想弄清楚如何查询一个表(该表实际上是一个结果集,所以它将是一个子查询),按 ColA=ColB 对其进行分组(见下文),并一步创建一个计算字段。 所以,如果我的测试数据看起来像 可乐 可乐 可乐 1
我是一名优秀的程序员,十分优秀!