У меня есть класс Item, который реализует Comparable и имеет метод CompareTo. Я хочу сравнить объект o с другими предметами. Я наложил o на Item.
В отдельном классе Inventory у меня есть метод для вставки предметов в инвентарь. Но я только хочу вставить, если их номера продуктов отличаются. Поэтому я пытаюсь вызвать метод compareTo () для сравнения номеров элементов, но получаю ошибку переполнения стека.
Я пробовал p.compareTo (iter.next), потому что я хочу, чтобы он просматривал все элементы в списке. Извините, форматирование не идеально. первый пост здесь.
public class item{
public int compareTo(Object o){
result = compareTo((Product)o);
if (result < 0){
return -1;
}
else if (result == 0){
return 0;
}
else{
return 1;
}
}
}
public class ProductInventory extends Product {
private void insert(Product p){
Iterator<Product> iter = list.iterator();
if (list.size() == 0) {
list.addFirst(p);
}
while(iter.hasNext()) {
p.compareTo(iter.next());
//if (p.getNumber() != iter.next().getNumber()) {
System.out.print("RESULT:" + result);
if (result != 0) {
list.addFirst(p);
}
else {
System.out.print("DUPLICATE");
}
iter.next();
}
}
Я хочу напечатать дубликат, если результат = 0 (цифры одинаковые), в противном случае добавьте его в список.