Предположим, что class Student
с параметрами name
, grade
и ID
:
class Student (name: String, grade: String, ID: String) {
var _studentID = ID
var _studentName = name
var _studentGrade = grade
//override hashCode(), equals(), compareTo() etc
}
Как предотвратить повторяющиеся записи в соответствии с ID
, сортируя их - автоматически, если это возможно - в соответствии с name
?
Нельзя использовать ArrayList
внутри for
l oop для проверки дубликатов, затем использовать функцию sortBy
. Такой подход позволяет мне также дать отзыв пользователю. Тем не менее, может быть лучший алгоритм или структура данных (например, HashSet, TreeMap et c.) Для работы. Что порекомендуете?
PS Я тоже попробовал TreeSet. Но каким-то образом TreeSet иногда допускал в набор экземпляры с похожими идентификаторами (скажем, 1 из 5 последовательных попыток). У вас есть идея, как это произошло? Может ли это быть из-за того, что разные потоки работают с одними и теми же данными или из-за несовместимых методов equals()
и compareTo()
(equals()
был переопределен для ID
, а compareTo()
был переопределен согласно name
)?