博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
单例集合的体系
阅读量:6166 次
发布时间:2019-06-21

本文共 1043 字,大约阅读时间需要 3 分钟。

单例集合的体系

---------|Collection 单例集合的根接口

----------------|List接口 实现了List接口的对象具备有序可重复的特点

-------------------|ArrayList 实现了List接口 底层采用了Object数组实现,特点是查找快,增删慢

-------------------|LinkList 实现了List接口 底层采用了链表实现,特点是查找慢,增删快

-------------------|Vector 实现原理与Arraylist相同,但是事线程安全的,操作效率低,jdk1.0的时候就出现了,现在已经不推荐使用.

----------------|Set 接口 实现了Set接口的对象具备无序不可重复的特点

-------------------|HashSet 底层使用了了哈希表支持

HashSet存储原理:

  1、当往HashSet里存放元素的时候,会根据对象的hashCode方法获取对象的哈希码值然后做一系列运算后得出对象的存储位置

  2、如何元素要存储的位置是空的那么直接存储,否则的话进入下一步

  3、当元素要存储的位置不为空时,会调用该元素的equal方法与该位置上已有的元素进行比较,如果返回值是false说明两者不是同一个对象,可以存储,否则的话就要舍弃改元素,不能存放进HashSet.

-------------------|TreeSet 底层使用红黑(二叉树)实现,特点是会对存储的元素进行排序.

TreeSet注意事项

  1、往TreeSet存放对象时,如果对象本身具备自然顺序(如1、2、3... ...),那么会根据自然顺序进行排序

  2、存放的对象如果不具备自然顺序时,那么要存放的元素要实现Comparable接口,然后在compareTo上定义比较规则

  3、如果存放的对象没有实现Comparable接口时,那么在创建TreeSet对象时必须要传入一个比较器,用来定义比较规则

  比较器的定义格式、

    class 类型implemets Comparator{

      comparato(){

        return

      }

    }

  如果返回值是0的话说明两者对象相同,TreeSet将不予添加当前对象

转载于:https://www.cnblogs.com/it-life-nathan/p/7260981.html

你可能感兴趣的文章
Cisco统一通信---视频部分
查看>>
nginx编译及参数详解
查看>>
VMware下PM魔术分区使用教程
查看>>
nslookup错误
查看>>
我的友情链接
查看>>
Supported plattforms
查看>>
做自己喜欢的事情
查看>>
CRM安装(二)
查看>>
关于C# -WINFORM-DataGridView的更新、删除
查看>>
【Android进阶学习】监听EditText的变化
查看>>
gulp 插件之 del
查看>>
vim configure
查看>>
Nginx一点总结
查看>>
Linux_MySQL(mariadb)基础(1)V1.0
查看>>
HDU1280 前m大的数
查看>>
系统自动化安装kickstart文件解析
查看>>
澄清大数据存储——系统集成商篇
查看>>
学习git知识_1
查看>>
RHEL5.5下vsftp服务器搭建
查看>>
Netscreen与Cisco跑OSPF
查看>>