这是我的代码。我正在尝试测试我的 bubbleSort 方法..
import java.util.ArrayList;
import java.util.List;
public class MyArrayList<T extends Comparable<? super T>> extends ArrayList<Comparable<T>> {
private static final long serialVersionUID = 1L;
private MyArrayList<T> myList; // class list
public MyArrayList(ArrayList<Comparable<T>> asList) {
for (Comparable<T> e: asList) {
myList.add(e);
}
}
public void bubbleSort() {
boolean swapped = true;
while (swapped) {
swapped = false;
for (int i = 0; i < this.size() - 1; i++) {
if (this.get(i).compareTo((T) this.get(i + 1)) > 0) {
swapped = true;
Comparable<T> temp = this.get(i);
this.set(i, this.get(i + 1));
this.set(i + 1, temp);
}
}
}
}
}
在我的测试类中,我无法创建列表来测试我的 bubbleSort 方法。我想尝试创建一个整数列表(来自数组)、一个字符串列表和其他一些列表,但我不断收到各种错误。
import static org.junit.Assert.*;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import org.junit.Test;
public class MyArrayListTest<T> {
public void setUp() {
Integer[] testIntArray = new Integer[]{0, 1, 2, 3};
MyArrayList<Integer> myList = new MyArrayList<Integer>(Arrays.asList(testIntArray));
}
}
知道为什么这行不通吗?我将如何创建 MyArrayList?
最佳答案
你应该改变你的构造函数:
public MyArrayList(ArrayList<Comparable<T>> asList)
到:
public MyArrayList(List<T> asList)
Arrays.asList
不返回 java.util.ArrayList
,这就是为什么 new MyArrayList<Integer>(Arrays.asList(testIntArray))
不编译。 Arrays.asList
返回 Arrays
中定义的嵌套类的实例类,也称为 ArrayList
,但更重要的是,Arrays.asList(T... a)
的返回类型是List<T>
.
关于java - 尝试创建和测试可比较的 arraylist 类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29569348/