- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我的第一个问题是如何正确实现实现 compareTo 的通用类。我当前的类定义是:
public static class Node<T> implements Comparable<Node<T>>{
我的 compareTo 方法是:
public <T extends Comparable<T>> int compareTo(Node<T> n){
1a.这些定义正确吗?
1b。我应该如何完成我的 compareTo 方法?我在网上找到的许多文献都提到在方法本身中使用 .compareTo(),这对我来说没有意义。
我当前的方法定义是
public void swap(Node<T> n1, Node<T> n2){
// swap
}
最佳答案
1a. Are these definitions correct?
不完全是。 compareTo
的定义声明了一个类型变量,这可能是错误的:
public <T extends Comparable<T>> int compareTo(Node<T> n){
(它实际上不应该编译。)
它应该只是:
@Override
public int compareTo(Node<T> n){
1b. How should I complete my compareTo method?
这取决于您要比较的内容。因为你没有具体说明,我们不知道。 ; )
Much of the literature I have found online has referenced using .compareTo() within the method itself, which does not make sense to me.
这是一个典型用法的例子:
// saying T must also be Comparable:
// it's possible you are supposed to do
// this for your own Node declaration too
// vvvvvvvvvvvvvvvvvvvvvvv
class Node<T extends Comparable<T>> implements Comparable<Node<T>> {
T data;
@Override
public int compareTo(Node<T> that) {
return this.data.compareTo( that.data );
}
}
现在我们可以比较节点,但它实际上委托(delegate)给任何数据。我们不知道也不关心数据是什么(尽管它不能为空),只是它实现了 Comparable
。
2. Is it possible to swap two nodes in a singly linked list implementation, or does the swap method inherently require a doubly linked implementation of a linked list?
这里的提示是您不需要交换节点,无论它们的数据是什么。
关于java - 链表的泛型实现和交换两个泛型对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30090796/
我是一名优秀的程序员,十分优秀!