📜  程序员查看数组与链表的方法(1)

📅  最后修改于: 2023-12-03 14:56:35.919000             🧑  作者: Mango

程序员查看数组与链表的方法

在程序开发中,操作数组和链表是常见的数据结构。在开发过程中,我们需要查看数组或链表的内容来观察其状态,以验证程序的正确性或找出问题。

查看数组内容

手动遍历数组

手动遍历数组是最常见的方法。一般都是通过循环遍历整个数组,输出每个元素的值。

int[] arr = {1, 2, 3, 4, 5};
for (int i = 0; i < arr.length; i++) {
    System.out.print(arr[i] + " ");
}

上面的代码输出结果为:1 2 3 4 5

使用Arrays.toString()

如果使用Java的标准库,可以使用Arrays.toString()方法打印整个数组的内容。该方法会将数组转换为字符串,元素之间用逗号分隔。

int[] arr = {1, 2, 3, 4, 5};
System.out.println(Arrays.toString(arr));

上面的代码输出结果为:[1, 2, 3, 4, 5]

查看链表内容

手动遍历链表

手动遍历链表是最基本的方法,通过循环遍历整个链表,输出每个结点的值。

ListNode node = head;
while (node != null) {
    System.out.print(node.val + " ");
    node = node.next;
}

上面的代码输出链表的所有结点值。

重写toString()方法

重写链表的toString()方法可以让打印链表更加方便。重写该方法时,需要遍历整个链表,将每个结点的值转换为字符串,按照元素之间用箭头 -> 分隔的格式输出。

public class ListNode {
    int val;
    ListNode next;

    public ListNode(int val) {
        this.val = val;
    }

    @Override
    public String toString() {
        StringBuilder sb = new StringBuilder();
        ListNode node = this;
        while (node != null) {
            sb.append(node.val);
            if (node.next != null) {
                sb.append(" -> ");
            }
            node = node.next;
        }
        return sb.toString();
    }
}

重写toString()方法后,我们可以直接调用链表的toString()方法打印整个链表。

ListNode head = new ListNode(1);
head.next = new ListNode(2);
head.next.next = new ListNode(3);
System.out.println(head);

上面的代码输出结果为:1 -> 2 -> 3

综上所述,查看数组和链表的方法有很多种,可以根据具体需求选择合适的方法。