使用比较器和迭代器,我尝试按顺序将对象添加到链接列表中。到目前为止,我有以下内容:
public class ComparatorClass implements Comparator<Integer> {
public int compare(Integer int1, Integer int2) {
return int1.compareTo(int2);
}
}
和:
import java.util.ArrayList;
import java.util.Comparator;
import java.util.Iterator;
public class OrderedListInheritance implements LinkedList {
ArrayList<Object> myList = new ArrayList<Object>();
Comparator comp = new ComparatorClass();
OrderedListInheritance(Comparator c) {
this.comp = c;
}
@Override
public void add(Object o) {
addLast(o);
}
@Override
public void addAtIndex(int index, Object o) {
Iterator it = getIterator();
while (it.hasNext()) {
Object element = it.next();
if (comp.compare(element, o) < 0) {
}else if (comp.compare(element, o) == 0) {
}else{
myList.add(o);
}
}
}
@Override
public void addFirst(Object o) {
addAtIndex(0, o);
}
@Override
public void addLast(Object o) {
addAtIndex(myList.size(), o);
}
@Override
public Object get(int index) {
return myList.get(index);
}
@Override
public Iterator getIterator() {
Iterator iter = myList.iterator();
return iter;
}
@Override
public int indexOf(Object o) {
return myList.indexOf(o);
}
}
我不确定如何结合使用迭代器和比较器来按顺序将每个元素添加到链接列表中。有人可以帮我理清逻辑吗?
最佳答案
你的比较器是错误的。
比较器的一般契约的一部分是,如果 compare(a, b)
为正,则 compare(b, a)
为负。
如果您传递的比较器不满足比较器契约,您将得到未定义的行为。
关于java - 如何在 Java 中向链表添加项目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1864493/