《Java集合》学习笔记

Java集合主要分为以下3中类型:
- Set(集):集合中的对象不按特定方式排序,并且没有重复对象。它的有些实现类能对集合中的对象按特定方式排序
- List(列表):集合中的对象按照索引位置排序,可以有重复对象,允许按照对象在集合中的索引位置检索对象。List与数组有些相似
- Map(映射):集合中的每一个元素包含一对键对象和值对象,集合中没有重复的键对象,值对象可以重复。它的有些实现类能对集合中的键对象进行排序

Set(集)
Set时最简单的一种集合,集合中的对象不按特定方式排序,并且没有重复对象。Set接口主要有两个实现类:HashSet和TreeSet。HashSet类按照哈希算法来存取集合中的对象,存取速度比较快。HashSet类还有一个子类LinkedHashSet类,它不仅实现了哈希算法,而且实现了链表数据接口,链表数据结构能提高插入和删除元素的性能。TreeSet类实现了SortedSet接口,具有排序功能。

HashSet
为了保证HashSet能正常工作,要求当两个对象用equals()方法比较的结果为true时,它们的哈希码也相等。如果用户自定义类覆盖了equals()方法,也应该覆盖hashCode()方法,并且保证两个相等的对象的哈希码也一样。
注:如果两个对象用equals()方法比较不相等,HashSet或HashMap并不要求这两个对象的哈希码也必须不相等。但是尽量保证用equals()方法比较不相等的两个对象有不同的哈希码,这样可以减少哈希冲突,提高HahSet和HashMap的性能。

TreeSet
TreeSet类实现了SortedSet接口,能够对集合中的对象进行排序。TreeSet支持两种排序方式:自然排序和客户化排序。在默认情况下TreeSet采用自然排序方式。

自然排序
在JDK类库中,有一部分类实现了Comparable接口,如Integer、Double和String等。TreeSet调用对象的compareTo()方法比较集合中对象的大小,然后进行升序排列,这种排序方式称为自然排序。使用自然排序是,只能想TreeSet集合中加入同类型的对象,并且这些对象的类必须实现了Comparable接口。
值得注意的是,对于TreeSet中已经存在的某些对象,如果修改了它们的属性,则TreeSet不会对集合进行重新排序。因此不适合通过TreeSet来排序。最适合用TreeSet排序的是不可变类。

客户化排序
TreeSet还支持客户化排序。java.uils.Comparator 接口提供具体的排序方式,指定被比较的对象的类型,Comparator有个compare(Type x,Type y)方法,用于比较两个对象的大小。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值