java数据结构有哪些
JAVA数据结构有以下几种
1、List
List是有序的Collection,使用此接口能够精确的控制每个元素插入的位置。用户能够使用索引(元素在List中的位置,类似于数组下 >标)来访问List中的元素,这类似于Java的数组。
2、Vector
基于数组(Array)的List,其实就是封装了数组所不具备的一些功能方便我们使用,所以它难易避免数组的限制,性能也不可能超越数组。
很重要的一点就是Vector是线程同步的(sychronized)的,这也是Vector和ArrayList 的一个的重要区别。
3、ArrayList
同Vector一样是一个基于数组上的链表,不同的是ArrayList不是同步的。所以在性能上要比Vector好一些,当运行到多线程环境中时,可需要自己在管理线程的同步问题。
4、LinkedList
LinkedList不同于前面两种List,它不是基于数组的,所以不受数组性能的限制。 它每一个节点(Node)都包含两方面的内容节点本身的数据(data),下一个节点的信息(nextNode)。
所以当对LinkedList做添加,删除动作的时候就不用像基于数组的ArrayList一样,必须进行大量的数据移动。只要更改nextNode的相关信息就可以实现了,这是LinkedList的优势。
5、HashSet
虽然Set同List都实现了Collection接口,他们的实现方式却大不一样。List基本上都是以Array为基础。
Set则是在 HashMap的基础上来实现的,这就是Set和List的根本区别。HashSet的存储方式是把HashMap中的Key作为Set的对应存储项。
6、HashMap
基于哈希表的 Map 接口的实现。此实现提供所有可选的映射操作,并允许使用 null 值和 null 键。(除了不同步和允许使用 null 之外,HashMap 类与 Hashtable 大致相同。)此类不保证映射的顺序,特别是它不保证该顺序恒久不变。
7、HashTable
Hashtable 是一个散列表,它存储的内容是键值对(key-value)映射。Hashtable 继承于Dictionary,实现了Map、Cloneable、java.io.Serializable接口。
Hashtable 的函数都是同步的,这意味着它是线程安全的。它的key、value都不可以为nul。
奇人奇事
- 闺蜜2什么时候上映 电影闺蜜第二部上映时间
- 唱作人朱星杰高产高质 新作 下世纪初雪复古
- 安宰贤是富二代吗安宰贤的家境怎么样
- 胡定欣透视衣造型惊呆全场 与好友相约40岁时在
- 韩国奔跑吧兄弟名单大分析 大型户外竞技真人秀
- 催眠师催眠挑战上线杨玏男扮女装玩催眠魔法
- 变性主持人利菁夜探诊所缩胸 抽脂不打麻药
- 黄灿灿割双眼皮了吗黄灿灿双眼皮是真的吗
- 江湖岁月英雄柔情展真心,热血演绎铁汉情义
- 电影唐人街探案3映后畅聊会 陈思诚王宝强感
- 中国姓氏排名2020年最新版是怎样的个人大数据
- 加藤纱里婚后3个月分手 老公嫌弃她太花钱
- 青你2迎公演舞台LISA严厉升级 亲自示范舞
- 有些人你永远不必等是什么歌 歌曲梦醒时分
- 演员宣璐是怎么火的演过什么剧 宣璐个人资料简
- 2017年新西兰葡萄收成减少 品质如何