ZKX's LAB

treeset 重复数据 java TreeSet能存放两个相同的元素吗?

2021-04-04知识5

treeset底层数据结构是什么?如何保证元素的唯一性的呢 List:元素是有序的,元素可以重复,因为该集合体系有索引 ArrayList:查询速度快,增删稍慢,线程不同步,使用equals来比较元素是否相同LinkedList:增删速度很快,查询稍慢Vector:线程同步Set:元素是无序的,元素不可以重复 HashSetTreeSetMap:,v>;Hashtable:效率低,不允许空值,线程同步,jdk1.1,数据结构:哈希表数据结构HashMap:效率高,允许空值,线程不同步,jdk1.2 数据结构:哈希表数据结构TreeMap:数据结构:二叉树,线程不同步,可以给map集合中的元素排列ArrayList:数据结构是数组 是可以存放重复的数据的,因为它有下标标识,所以,是有序排列2.LinkedList:数据结构是链表,可以存放重复数据.增删改速度很快.查询较慢3.Vector:数据结构是数组,线程同步,现被ArrayList取代4.HashSet:数据结构是哈希表.为了保证数据唯一性,会首先判断元素的hashCode是不是相同,如果相同还会去比较元素的equals方法5.TreeSet:数据结构是二叉树:可以对集合中的元素进行排列.为了保证元素的唯一性,会调用CompareTo()方法来比较

TreeSet和HashSet的区别?? 最近学到数据结构,对于二者感到迷惑,只知道前者有序,后者无序,两者都不能 其实你知道这些已经可以了,但是如果你真想知道底层是怎么样实现的,你可以关联SDK源代码,然后用鼠标点进去看底层源代码。至于保证元素的不重复,是根据hashcode还有equals方法和已经实现的比较器来确定的,比如字符串,这三个东西都默认已经实现,如果是自定义的类则要实现这三个东西的,这些,我也没看过源代码,是根据对java的“感觉”来说的,哈。

关于Java里的TreeSet判断重复元素。 set 一直没搞懂TreeSet是怎么判断重复元素的,有人说是先调用compareTo()方法,如果返回0,就判断为重复元素。于是我写了一个学生类,下面是各种方法 。

#treeset 重复数据

随机阅读

qrcode
访问手机版