Rumah  >  Artikel  >  Java  >  Bagaimana untuk mengendalikan jadual jujukan struktur data Java

Bagaimana untuk mengendalikan jadual jujukan struktur data Java

王林
王林ke hadapan
2023-05-12 20:22:04809semak imbas

    Prakata

    Senarai linear ialah jujukan terhingga bagi n elemen data dengan ciri yang sama. Jadual linear ialah struktur data yang digunakan secara meluas dalam amalan Jadual linear biasa termasuk senarai jujukan, senarai terpaut, tindanan, baris gilir, rentetan... Jadual linear secara logiknya adalah struktur linear, iaitu garis lurus berterusan. Walau bagaimanapun, struktur fizikal tidak semestinya berterusan Apabila jadual linear disimpan secara fizikal, ia biasanya disimpan dalam bentuk tatasusunan dan struktur terpaut.

    1. Apakah itu jadual jujukan

    Konsep dan struktur jadual jujukan

    Jadual jujukan ialah struktur linear yang menggunakan unit storan dengan alamat fizikal berterusan untuk menyimpan elemen data dalam urutan Umumnya, Dalam kes ini, storan tatasusunan digunakan. Lengkapkan penambahan, pemadaman, penyemakan dan pengubahsuaian data pada tatasusunan

    sebenarnya ialah tatasusunan. Kemudian mengapa anda perlu menulis jadual jujukan, bukankah lebih baik menggunakan tatasusunan sahaja? Perbezaannya ialah menulisnya dalam kelas boleh berorientasikan objek.

    Buat jadual jujukan

    Bagaimana untuk mengendalikan jadual jujukan struktur data Java

    public class MyArrayList {
       public int[] elem;//数组
       public int usedSize;//数据的有效个数
     
       public MyArrayList(){
           this.elem = new int[10];
       }
    }

    Cetak jadual jujukan

    Bagaimana untuk mengendalikan jadual jujukan struktur data Java

    Cetak Keputusan:

    Bagaimana untuk mengendalikan jadual jujukan struktur data Java

    Oleh kerana paparan dicetak berdasarkan usedsize, usedsize tidak diberikan nilai, jadi tiada apa yang dicetak.

    Dapatkan panjang jadual jujukan

    Bagaimana untuk mengendalikan jadual jujukan struktur data Java

    Tambah elemen pada kedudukan pos

    Kedudukan di mana elemen dimasukkan semasa memasukkannya dalam jadual jujukan Elemen mesti disimpan di hadapan,

    Analisis lukisan:

    Bagaimana untuk mengendalikan jadual jujukan struktur data Java

    Kod adalah seperti berikut:

    // 在 pos 位置新增元素
        public void add(int pos, int data) {
           if(pos < 0 || pos > usedSize){
               System.out.println("pos位置不合法");
               return;
           }
           if(isFull()){
               this.elem = Arrays.copyOf(this.elem,this.elem.length*2);
           }
            for (int i = this.usedSize-1; i >=pos ; i--) {
                this.elem[i+1] = this.elem[i];
            }
            this.elem[pos] = data;
            
            this.usedSize++;
            
        }
     
        public boolean isFull(){
           return this.usedSize == this.elem.length;
        }

    Cetak hasil :

    Bagaimana untuk mengendalikan jadual jujukan struktur data Java

    Tentukan sama ada elemen disertakan

    // 判定是否包含某个元素
        public boolean contains(int toFind) {
            for (int i = 0; i < this.usedSize; i++) {
                if (this.elem[i] == toFind) {
                    return true;
                }
            }
            return false;
        }

    Cetak hasil:

    Bagaimana untuk mengendalikan jadual jujukan struktur data Java

    Cari kedudukan sepadan dengan elemen

     // 查找某个元素对应的位置
        public int search(int toFind) {
            for (int i = 0; i <this.usedSize ; i++) {
                if(this.elem[i] == toFind){
                    return i;
                }
            }
           return -1; 
       }

    Hasil cetakan:

    Bagaimana untuk mengendalikan jadual jujukan struktur data Java

    Dapatkan elemen pada kedudukan pos

     // 获取 pos 位置的元素
        public int getPos(int pos) {
           if(pos < 0 || pos > this.usedSize){
               System.out.println("pos位置不合法");
               return -1;//所以,这里说明一下,业务上的处理,这里不考虑
           }
           if (isEmpty()){
               System.out.println("顺序表为空");
               return -1;
           }
           return this.elem[pos];
     
        }
        public boolean isEmpty(){//判断为不为空的情况下
           return this.usedSize == 0;
        }

    Hasil cetakan:

    Bagaimana untuk mengendalikan jadual jujukan struktur data Java

    Tetapkan elemen pada kedudukan pos kepada nilai

       // 给 pos 位置的元素设为 value
        public void setPos(int pos, int value) {
            if (pos < 0 || pos > this.usedSize) {
                System.out.println("pos位置不合法");
                return ;
            }
            if (isEmpty()) {
                System.out.println("顺序表为空");
                return;
            }
             this.elem[pos] = value;
        }
        public boolean isEmpty() {//判断为不为空的情况下
            return this.usedSize == 0;
        }

    Cetak hasil:

    Bagaimana untuk mengendalikan jadual jujukan struktur data Java

    Padam elemen yang anda mahu padamkan

    //删除第一次出现的关键字key
    public void remove(int toRemove) {
       if(isEmpty()){
           System.out.println("顺序表为空");
           return;
       }
       int index = search(toRemove);//查找要删除元素对应的位置
       if(index == -1){
           System.out.println("没有你要找到数字");
           return;
       }
     
        for (int i = index; i <this.usedSize-1 ; i++) {
            this.elem[i] = this.elem[i+1];
        }
        this.usedSize--;
     
    }

    Hasil cetakan:

    Bagaimana untuk mengendalikan jadual jujukan struktur data Java

    Atas ialah kandungan terperinci Bagaimana untuk mengendalikan jadual jujukan struktur data Java. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

    Kenyataan:
    Artikel ini dikembalikan pada:yisu.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam