Rumah > Java > javaTutorial > Pemahaman mendalam tentang struktur data Java: kunci untuk meningkatkan kemahiran pengaturcaraan

Pemahaman mendalam tentang struktur data Java: kunci untuk meningkatkan kemahiran pengaturcaraan

WBOY
Lepaskan: 2024-01-10 23:17:11
asal
1235 orang telah melayarinya

Pemahaman mendalam tentang struktur data Java: kunci untuk meningkatkan kemahiran pengaturcaraan

Analisis lengkap struktur data Java: Memahami struktur data ini untuk meningkatkan kemahiran pengaturcaraan anda memerlukan contoh kod khusus

Pengenalan:
Dalam sains komputer, struktur data merujuk kepada cara data disusun dan disimpan dalam ingatan komputer. Dalam pengaturcaraan, memahami struktur data yang berbeza adalah penting untuk mengoptimumkan algoritma dan menjadikan program lebih cekap. Artikel ini akan memperkenalkan beberapa struktur data Java biasa dan menyediakan contoh kod khusus untuk membantu pembaca memahami dan menggunakan struktur data ini.

1. Tatasusunan
Tatasusunan ialah struktur data linear yang boleh menyimpan berbilang elemen dalam satu pembolehubah. Setiap elemen diakses oleh indeks, yang bermula dari sifar. Tatasusunan dalam Java boleh menyimpan elemen jenis yang sama.
Berikut ialah kod sampel yang menunjukkan cara untuk mengisytiharkan, memulakan dan mengakses elemen dalam tatasusunan:

int[] myArray = new int[5]; // 声明一个长度为5的整数数组

myArray[0] = 10;
myArray[1] = 20;
myArray[2] = 30;
myArray[3] = 40;
myArray[4] = 50;

System.out.println(myArray[0]); // 输出:10
System.out.println(myArray[4]); // 输出:50
Salin selepas log masuk

2. Senarai Terpaut (LinkedList)
Senarai terpaut ialah struktur data dinamik yang boleh memasukkan dan memadam elemen pada masa jalan. Senarai terpaut terdiri daripada nod, setiap nod mengandungi elemen data dan rujukan kepada nod seterusnya.
Berikut ialah contoh kod yang menunjukkan cara membuat, menambah dan memadam nod dalam senarai terpaut:

class Node {
    int data;
    Node next;

    public Node(int data) {
        this.data = data;
        this.next = null;
    }
}

class LinkedList {
    Node head;

    public void addNode(int data) {
        Node newNode = new Node(data);
        if (head == null) {
            head = newNode;
        } else {
            Node temp = head;
            while (temp.next != null) {
                temp = temp.next;
            }
            temp.next = newNode;
        }
    }

    public void deleteNode(int data) {
        Node temp = head;
        Node prev = null;
        if (temp != null && temp.data == data) {
            head = temp.next;
            return;
        }
        while (temp != null && temp.data != data) {
            prev = temp;
            temp = temp.next;
        }
        if (temp == null) {
            return;
        }
        prev.next = temp.next;
    }
}

public class Main {
    public static void main(String[] args) {
        LinkedList linkedList = new LinkedList();

        linkedList.addNode(10);
        linkedList.addNode(20);
        linkedList.addNode(30);
        linkedList.addNode(40);
        
        linkedList.deleteNode(20);

        Node temp = linkedList.head;
        while (temp != null) {
            System.out.println(temp.data);
            temp = temp.next;
        }
    }
}
Salin selepas log masuk

3. Tindanan (Timbunan)
Timbunan ialah struktur data masuk dahulu (LIFO) yang terakhir. Ia boleh menambah dan mengalih keluar elemen menggunakan operasi tolak dan pop.
Berikut ialah kod sampel yang menunjukkan cara menggunakan tindanan:

import java.util.Stack;

public class Main {
    public static void main(String[] args) {
        Stack<Integer> stack = new Stack<>();

        stack.push(10);
        stack.push(20);
        stack.push(30);
        
        System.out.println(stack.pop()); // 输出:30
        System.out.println(stack.peek()); // 输出:20
    }
}
Salin selepas log masuk

4. Baris Gilir (Queue)
Barisan ialah struktur data masuk dahulu, keluar dahulu (FIFO). Ia boleh menambah dan mengalih keluar elemen dengan menggunakan operasi tambah (enqueue) dan undian (dequeue).
Berikut ialah contoh kod yang menunjukkan cara menggunakan baris gilir:

import java.util.LinkedList;
import java.util.Queue;

public class Main {
    public static void main(String[] args) {
        Queue<Integer> queue = new LinkedList<>();

        queue.add(10);
        queue.add(20);
        queue.add(30);
        
        System.out.println(queue.poll()); // 输出:10
        System.out.println(queue.peek()); // 输出:20
    }
}
Salin selepas log masuk

5. Jadual cincang (HashMap)
Jadual cincang ialah struktur data pasangan nilai kunci yang menggunakan fungsi cincang untuk menyimpan data dalam tatasusunan. Kekunci menyediakan akses pantas dan kemas kini nilai.
Berikut ialah contoh kod yang menunjukkan cara menggunakan jadual cincang:

import java.util.HashMap;

public class Main {
    public static void main(String[] args) {
        HashMap<String, Integer> hashMap = new HashMap<>();

        hashMap.put("apple", 10);
        hashMap.put("banana", 20);
        hashMap.put("orange", 30);
        
        System.out.println(hashMap.get("apple")); // 输出:10
        System.out.println(hashMap.containsKey("banana")); // 输出:true
    }
}
Salin selepas log masuk

6. Pokok (Pokok)
Pokok ialah struktur data bukan linear yang terdiri daripada nod dan tepi. Setiap nod pokok boleh mempunyai berbilang nod anak.
Berikut ialah contoh kod yang menunjukkan cara mencipta dan melintasi pokok:

class Node {
    int data;
    Node left, right;

    public Node(int data) {
        this.data = data;
        left = right = null;
    }
}

class BinaryTree {
    Node root;

    public BinaryTree() {
        root = null;
    }

    public void inorderTraversal(Node node) {
        if (node == null) {
            return;
        }
        inorderTraversal(node.left);
        System.out.println(node.data);
        inorderTraversal(node.right);
    }
}

public class Main {
    public static void main(String[] args) {
        BinaryTree tree = new BinaryTree();

        tree.root = new Node(1);
        tree.root.left = new Node(2);
        tree.root.right = new Node(3);
        tree.root.left.left = new Node(4);
        
        tree.inorderTraversal(tree.root);
    }
}
Salin selepas log masuk

Ringkasan:
Artikel ini memperkenalkan beberapa struktur data Java biasa dan menyediakan contoh kod khusus untuk membantu pembaca memahami dan menggunakan struktur data ini. Dengan menguasai struktur data ini, kami boleh mengoptimumkan algoritma dengan lebih baik dan meningkatkan kecekapan program. Mempelajari dan menggunakan struktur data secara berterusan akan membantu meningkatkan kemahiran pengaturcaraan anda.

Atas ialah kandungan terperinci Pemahaman mendalam tentang struktur data Java: kunci untuk meningkatkan kemahiran pengaturcaraan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan