Array dinamis ASP menyediakan metode Tambah, Sisipkan, Hapus, Hapus, Pencarian, dan lainnya. Objek dapat disimpan dalam array terlepas dari masalah efisiensi
Copy kode kodenya sebagai berikut:
Kelas Vektor
data_vektor pribadi()
Private initial_capacity 'Kapasitas inisialisasi
Peningkatan_kapasitas pribadi 'Peningkatan kapasitas
Private element_count 'Jumlah elemen
Max_capacity pribadi 'kapasitas total
Sub Kelas Pribadi_Inisialisasi()
Hapus semua
Akhiri Sub
Fungsi Publik HapusSemua()
jumlah_elemen = 0
kapasitas_awal = 10
peningkatan_kapasitas = 10
kapasitas_maks = kapasitas_awal
Redupkan kembali data_vektor(kapasitas_awal)
Fungsi Akhir
Properti Publik Dapatkan Hitungan()
Hitungan = jumlah_elemen
Properti Akhir
Properti Umum Dapatkan Kapasitas()
Kapasitas = kapasitas_maks
Properti Akhir
Properti Publik GetInitialCapacity()
Kapasitas Awal = kapasitas_awal
Properti Akhir
Properti Publik Dapatkan Peningkatan Kapasitas()
Peningkatan Kapasitas = peningkatan_kapasitas
Properti Akhir
Properti Default Publik Dapatkan Item (indeks)
Jika IsObject(vector_datas(index)) Lalu
Setel Item = data_vektor(indeks)
Kalau tidak
Item = data_vektor(indeks)
Akhiri Jika
Properti Akhir
Tambah Fungsi Publik (elemen)
Sisipkan Panggilan(jumlah_elemen, elemen)
Fungsi Akhir
Hapus Fungsi Publik (elemen)
Indeks redup
indeks = Pencarian(elemen)
HapusPada(indeks)
Hapus=indeks
Fungsi Akhir
Fungsi Publik HapusAt(indeks)
Redupkan saya
Untuk i = indeks + 1 Ke jumlah_elemen - 1 Langkah 1
Panggil InternalElement(i - 1, vector_datas(i))
Berikutnya
jumlah_elemen = jumlah_elemen - 1
Jika kapasitas_maks - peningkatan_kapasitas > jumlah_elemen Lalu
kapasitas_maks = kapasitas_maks - peningkatan_kapasitas
ReDim Pertahankan data_vektor(kapasitas_maks)
Akhiri Jika
Fungsi Akhir
Pencarian Fungsi Publik (elemen)
Redupkan saya
Untuk i = 0 Ke jumlah_elemen - 1 Langkah 1
Jika vector_datas(i) = elemen Maka
Pencarian = saya
Fungsi Keluar
Akhiri Jika
Berikutnya
Pencarian=-1
Fungsi Akhir
Sisipan Fungsi Publik (indeks, elemen)
Jika indeks > element_count Lalu
Err.Raise 20903, "Vektor", "Indeks Array Di Luar Batas.", "", 0
Akhiri Jika
Jika jumlah_elemen = 0 Maka
Panggil InternalElement(0, elemen)
ElseIf indeks = elemen_count Lalu
Panggil InternalElement(element_count, elemen)
Kalau tidak
Redupkan saya
Untuk i = jumlah_elemen Untuk mengindeks + 1 Langkah -1
Panggil InternalElement(i, vector_datas(i - 1))
Berikutnya
Panggil InternalElement(indeks, elemen)
Akhiri Jika
jumlah_elemen = jumlah_elemen + 1
Jika jumlah_elemen = kapasitas_maks, maka
max_capacity = jumlah_elemen + peningkatan_kapasitas
ReDim Pertahankan data_vektor(kapasitas_maks)
Akhiri Jika
Fungsi Akhir
Fungsi Publik SetElementAt(indeks, elemen)
Jika indeks < 0 Atau indeks > jumlah_elemen - 1 Lalu
Err.Raise 20903, "Vektor", "Indeks Array Di Luar Batas.", "", 0
Akhiri Jika
Panggil InternalElement(indeks, elemen)
Fungsi Akhir
Fungsi Pribadi InternalElement(indeks, elemen)
Pada Kesalahan Lanjutkan Berikutnya
Jika IsObject(elemen) Lalu
Tetapkan vector_datas(index) = elemen
Kalau tidak
vector_datas(indeks) = elemen
Akhiri Jika
Jika Err.Number <> 0 Lalu
MsgBox("Vector InternalElement Error: " & vbCrLf & "Sumber Kesalahan: " & Err.Source & vbCrLf & "Nomor Kesalahan: " & Err.Number & vbCrLf & "Deskripsi Kesalahan: " & Err.Deskripsi & vbCrLf)
Err.Clear 'Hapus informasi kesalahan
Akhiri Jika
Fungsi Akhir
Sub Pribadi Class_Terminate() 'Penghancuran kelas
Hapus vector_datas 'Lepaskan memori yang ditempati oleh array dan atur setiap elemen ke Tidak Ada
kapasitas_inisial = Kosong
kapasitas_peningkatan = Kosong
elemen_count = Kosong
max_capacity = Kosong
Akhiri Sub
Kelas Akhir
Artikel ini berasal dari blog CSDN. Harap sebutkan sumbernya saat mencetak ulang: