前端面试写数据结构题用什么语言?当然,严格来说,是用java写作的,这与语言无关。但是你也可以要求面试官用C写!
数据结构是一样的,只是语言实现的问题。建议先看java的原理,然后可以买一本维斯的数据结构(C语言版),因为C数据结构用起来有点繁琐。如果想去排名前1梯队的公司,还是推荐看c,如果是发展中的公司,看java。
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接口实现。这个实现提供了所有可选的映射操作,并允许使用空值和空键。(异步和允许使用nu除外。除了ll,HashMap类与Hashtable大致相同。)这个类不保证映射的顺序,尤其不保证顺序不变。
7、哈希表:
Hashtable是一个哈希表,它存储的内容是一个键值映射。Hashtable从Dictionary继承,实现Map、Cloneable和Interface。
Hashtable函数都是同步的,这意味着它是线程安全的。它的键和值不能为空。