JAVA数据结构有哪几种?
有几种JAVA数据结构:
1、列表:
列表是有序的集合。使用这个界面,您可以精确地控制每个元素的插入位置。用户可以使用索引(元素在列表中的位置,类似于数组下的gt标记)来访问列表中的元素,类似于Java的数组。
2、向量:
基于数组的链表实际上封装了数组没有的一些函数供我们使用,所以很难避免数组的局限性,性能无法超越数组。
还有一点很重要,Vector是同步的,这也是Vector和ArrayList的一个重要区别。
3、数组列表:
和Vector一样,是基于数组的链表,不同的是ArrayList不是同步的。所以在性能上比Vector要好,但是在多线程环境下运行时,可能需要自己管理线程的同步。
4、链接列表:
linkedList与前两个列表不同,因为它不是基于数组的,所以不受数组性能的限制。每个节点包含两个方面:节点本身的数据和下一个节点的信息。
所以当添加和删除linkedList时,你不需要。;不需要像基于数组的数组列表那样移动大量数据。可以通过改变nextNode的相关信息来实现,这是linkedList的优势。
5、哈希集:
虽然Set和List都实现了集合接口,但是它们的实现方法却大相径庭。列表基本上是基于数组的。
但是Set是在HashMap的基础上实现的,这是Set和List的根本区别。HashSet的存储是使用HashMap中的键作为Set的对应存储项。
6、散列表:
基于哈希表的Map接口实现。这个实现提供了所有可选的映射操作,并允许使用空值和空键。(HashMap类类似于Hashtable,只是它是异步的,并且允许null。)这个类不保证映射的顺序,尤其不保证顺序不变。
7、哈希表:
Hashtable是一个哈希表,它存储的内容是一个键值映射。Hashtable从Dictionary继承,实现Map、Cloneable和Interface。
散列表函数都是同步的,这意味着它是线程安全的。它的键和值不能为空。