在Java中,数组和链表是两种常见的数据结构类型,它们都可以用来存储一系列相关的数据。虽然它们有些相似之处,但是也有不同之处。下面将详细介绍它们的区别。
1. 数组
int[] array = new int[]{1, 2, 3, 4, 5};
数组是一个固定大小的连续存储空间,可以在其中存储同一种类型的数据。在上面的例子中,我们创建了一个整型数组,其中存储了5个整数。数组的长度在创建时就已经确定,并且不能改变。我们可以通过下标访问数组中的任意一个元素,并在数组中插入或删除元素时需要移动其他元素。
2. 链表
class ListNode { int val; ListNode next; ListNode(int val) { this.val = val; } } ListNode head = new ListNode(1); head.next = new ListNode(2); head.next.next = new ListNode(3); head.next.next.next = new ListNode(4); head.next.next.next.next = new ListNode(5);
链表是由一个个节点按照某种顺序组成的,每个节点都包含一个数据域和一个指针域,指向下一个节点。在上面的例子中,我们创建了一个包含5个节点的单向链表,其中每个节点存储一个整数。链表的长度可以动态地改变,可以在头部或尾部插入或删除节点。链表的插入和删除操作比数组高效,但是随机访问元素需要遍历整个链表。
综上所述,数组和链表都有各自的特点,可以根据实际需求选择使用哪种数据结构。