Какую строку кода мне изменить, чтобы избежать дублирования в связанном списке?JAVA

Программисты JAVA общаются здесь
Anonymous
Какую строку кода мне изменить, чтобы избежать дублирования в связанном списке?

Сообщение Anonymous »

Я пытаюсь добавить элементы в связанный список, однако, если данные узла повторяются, а не возвращают новый узел, он должен вернуть исходный узел с теми же данными.
У меня есть тестовый файл вместе с файлом методы, которые я тестирую. Проблема связана с тем, что мой метод addOnce() возвращает проанализированный узел вместо первого вхождения. пытаюсь избежать
"Ошибка: начальный элемент не был возвращен для строки кода " + результат"
вот тестовый блок кода, редактирование не требуется

Код: Выделить всё

import java.util.Iterator;
public class OrderedListTest {
static private class Courses implements Comparable{
String rubric;
int number;
int occurance;
public Courses(String rub, int num, int occ) {
rubric = rub;
number = num;
occurance = occ;
}
public int compareTo(Courses other) {
if (rubric.compareTo(other.rubric) < 0)
return -1;
else if (rubric.compareTo(other.rubric) > 0)
return 1;
else
return number - other.number;
}
public String toString() {
return rubric + " " + number;
}
}
public static void main(String[] args) {
Courses listOfCourses[] = {
new Courses("COSC", 2436, 1),
new Courses("ITSE", 2409, 1),
new Courses("COSC", 1436, 1),
new Courses("ITSY", 1300, 1),
new Courses("ITSY", 1300, 2),
new Courses("COSC", 1436, 2),
new Courses("COSC", 2436, 2),
new Courses("ITSE", 2417, 1),
new Courses("ITNW", 2309, 1),
new Courses("CPMT", 1403, 1),
new Courses("CPMT", 1403, 2)};
OrderedAddOnce orderedList = new OrderedAddOnce();
Courses result;
for (int i = 0; i < listOfCourses.length; i++){
result = orderedList.addOnce(listOfCourses[i]);
if (result == null)
System.out.println("Error: findOrAdd returned null for " +
listOfCourses[i]);
else {
if (result.occurance != 1)
System.out.println("Error: The initial item was not returned for " + result);
if (result.compareTo(listOfCourses[i]) != 0)
System.out.println("Error: " + listOfCourses[i] + " was passed to findOrAdd but " + result + " was returned");
}
}
Iterator classIter = orderedList.iterator();
while(classIter.hasNext()) {
System.out.println(classIter.next());
}
// There should be 7 courses listed in order
}
}
Вот код, нуждающийся в отладке, особенно в методе addOnce()

Код: Выделить всё

import java.util.Iterator;
import java.util.NoSuchElementException;

/**
*
* @author User
*/

// Interface for COSC 2436 Labs 3 and 4
/**
* @param  The class of the items in the ordered list
*/
interface AddOnce 

Подробнее здесь: [url]https://stackoverflow.com/questions/78242201/what-line-of-code-do-i-change-to-avoid-duplication-in-a-linked-list[/url]

Вернуться в «JAVA»