Я пытаюсь предотвратить добавление повторяющихся записей в ArrayList, поскольку список заполняется при чтении каждой строки файла. Каждая строка файла находится в формате «node1 node2» (разделитель табуляции). Дубликат здесь может быть либо «node1 node2», либо «node2 node1». Вот мой код, чтобы попытаться выполнить эту операцию:JAVA: предотвращение дублирования записей в ArrayList
while((line = bufferedReader.readLine()) != null) {
String delimiter = "\t";
String[] tempnodelist;
tempnodelist = line.split(delimiter);
for (int i=0; i <= edgesnumber; i++) { //edgesnumber = edges.size()
if (tempnodelist[0] && tempnodelist[1] != edges.get(i)) {
edges.add(line);
}
}
nodes.add(tempnodelist[0]);
nodes.add(tempnodelist[1]); //intial intended use of tempnodelist.
}
Так как я уже разделив каждую линию, чтобы сделать HashSet каждого узла, я пытаюсь использовать это, чтобы проверить наличие дубликатов , На данный момент я просто не могу получить синтаксис правильно. Как я могу проверить предыдущие записи ArrayList для дубликатов и не допустить их добавления, а whist продолжает заполнять ArrayList? что не так с этим кодом в настоящее время?
Пожалуйста, задавайте любые вопросы, если что-то неясно,
Спасибо заранее!
Если вы не хотите, повторяющиеся записи, то вы хотите 'Set', а не' list'. –
Но записи могут быть отменены, и все равно будет считаться дубликатом ... Set не видел бы этого? – user2941526
Набор использует 'equals()' для поиска дубликатов. Вы должны создать определенный класс для объекта, который хотите поместить в свой набор, и переопределить 'equals()' в этом классе. –