Java Set集合

原创
05/29 13:46
阅读数 32

Set集合

最大的特点就是不允许保存重复的元素。其有两个常用的子类,HashSet,TreeSet。

HashSet

  • HashSet是Set接口中使用最多的一个子类,最大的特点是保存的数据是无序的。
  • 特点:
    • 保存的数据是无序的
    • 不保存重复的数据

TreeSet

特点

  • 保存的数据不重复
  • 按照数据的升序进行排序

关于重复元素的说明

  • HashSet并不是利用 Comparable 接口判读数据重复,他利用的是Object类中的方法实现的。hashCode编码,equals比较。eclipse能自动生成hashCodeequals函数
    • 对象编码:hashCode
    • 对象比较:equals
  • 在Java中,对于重复元素的判断处理,就是利用的hashCodeequals函数完成的,只有在排序(TreeSet)时,才会使用Comparable 接口实现

存入自定义的类型

  • TreeSet本质上是使用的TreeMap实现的数据存储,而TreeMap就需要 Comparable 接口确定大小关系
  • 自定义的类型要实现 Comparable 接口,只有实现这个接口才能知道大小关系
  • TreeSet 在实现比较的时候,一定要把所有的属性都要进行比较,否则,部分属性相同,也会认为是重复数据。因此,TreeSet是利用 Comparable 接口确认重复数据的
  • 由于TreeSet需要将所有的属性进行比对,实现难度太高,因此开发的时候一般使用HashSet进行储存
展开阅读全文
打赏
0
0 收藏
分享
加载中
更多评论
打赏
0 评论
0 收藏
0
分享
OSCHINA
登录后可查看更多优质内容
返回顶部
顶部