Java基础--集合1:集合的分类

1、Collection :(单列集合) 

                     List :(有序,可重复)

                           ArrayList:数组实现,查找快

                           LinkedList:链表实现,增删快

                           Vector:线程安全的ArrayList,效率低

 

                     Set  :(无序,不重复)

                           HashSet:速度快,使用哈希算法去重复,有存储对象时,

                                    先调用hashCode()计算哈希值。查找是否有哈希值相同的对象,

                                    如果没有,则存入,如果有,就和哈希值一样的对象进行equals()比较。

                                    比较结果为false则存入,true就不存。

                           TreeSet:可排序,使用二叉树算法去重复和排序,

|————————————-|         可以用两种方式指定比较的算法:

| 如果没传比较器也没实现  |             a)自然顺序: 按照类上实现的Comparable接口

| 接口,则会抛一个异常    |————-> (使用时必须重  中的compareTo()方法的顺序来排序。

| (ClassCastException)    |             写接口方法)

| 因为在TreeSet中会将存储 |              

| 的对象转为Comparable    |             b)比较器顺序:使用构造函数中传入的Comparator对象

| 来使用起compareTo()方法 |                           的compare()方法的顺序来排序。

|-------------------------|     

                          LinkedHashSet:是HashSet的子类。速度快(只比HashSet慢一点点),

                                         可以保留存储顺序,原理与HashSet相同。

|----------------------------------------------------------------------|

| Set中,如果有重复元素,是不会再往Set中存储的。                       |

| Map中,如果有重复元素,则会用后来的元素覆盖之前的元素(键不存,值覆盖)|

|----------------------------------------------------------------------|

 

2、Map:(键值对,键唯一,可根据键查找值)

      HashMap:速度快,使用哈希算法对键去重复。哈HashSet原理相同。

      TreeMap:可排序,使用二叉树算法对键去重复。和Tree原理相同。

      LinkedHashMap:速度快,可保留存储顺序。是HashMap的子类,原理与HashMap相同。

      HashTable:线程安全的HashMap,效率低, 不允许null键和null值。

      properties:Hashtable的子类,通常用来操作配置文件,键和值都是String。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值