Java 链表和数组详解

一、流程概述

在实现Java链表和数组时,首先需要了解它们的基本概念和特点。然后按照以下步骤逐步实现:

步骤操作
1创建链表类或数组类
2添加节点或元素
3删除节点或元素
4查找节点或元素
5修改节点或元素

二、具体实现步骤及代码

1. 创建链表类或数组类
// 链表类
class ListNode {
    int val;
    ListNode next;
    
    public ListNode(int val) {
        this.val = val;
    }
}

// 数组类
class MyArray {
    private int[] array;
    
    public MyArray(int size) {
        this.array = new int[size];
    }
}
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
2. 添加节点或元素
// 链表中添加节点
public void addNode(ListNode head, int val) {
    ListNode newNode = new ListNode(val);
    ListNode temp = head;
    while (temp.next != null) {
        temp = temp.next;
    }
    temp.next = newNode;
}

// 数组中添加元素
public void addElement(MyArray arr, int index, int value) {
    arr[index] = value;
}
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
3. 删除节点或元素
// 链表中删除节点
public void deleteNode(ListNode head, int val) {
    ListNode temp = head;
    while (temp.next != null && temp.next.val != val) {
        temp = temp.next;
    }
    if (temp.next != null) {
        temp.next = temp.next.next;
    }
}

// 数组中删除元素
public void deleteElement(MyArray arr, int index) {
    arr[index] = 0;
}
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
4. 查找节点或元素
// 链表中查找节点
public ListNode findNode(ListNode head, int val) {
    ListNode temp = head;
    while (temp != null && temp.val != val) {
        temp = temp.next;
    }
    return temp;
}

// 数组中查找元素
public int findElement(MyArray arr, int value) {
    for (int i = 0; i < arr.length; i++) {
        if (arr[i] == value) {
            return i;
        }
    }
    return -1;
}
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
5. 修改节点或元素
// 链表中修改节点的值
public void modifyNode(ListNode node, int newVal) {
    node.val = newVal;
}

// 数组中修改元素的值
public void modifyElement(MyArray arr, int index, int newVal) {
    arr[index] = newVal;
}
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.

三、类图

ListNode int val ListNode next ListNode(int val) MyArray int[] array MyArray(int size)

四、状态图

Initialized Added Deleted Found Modified

通过以上步骤和代码示例,你可以很好地理解如何实现Java链表和数组。希望这篇文章对你有所帮助,加油!