【发布时间】:2020-06-07 12:51:37
【问题描述】:
假设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 自动对它们进行排序?
在for 循环中使用ArrayList 来检查重复项然后使用sortBy 函数并非不可能。这种方法也允许我向用户提供反馈。但是,可能有更好的算法或数据结构(即 HashSet、TreeMap 等)来完成这项工作。你有什么推荐的?
附:我也试过 TreeSet。但不知何故,TreeSet 偶尔允许具有相似 ID 的实例进入集合(比如 5 次连续尝试中的 1 次)。你知道这是怎么发生的吗?可能是由于不同的线程在同一数据上运行,还是由于 equals() 和 compareTo() 方法不一致(equals() 被 ID 覆盖,compareTo() 被 name 覆盖)?
【问题讨论】:
标签: android-studio sorting kotlin data-structures duplicates