ArrayList
public class ArrayList{
int x [] = new int [10]; //memiliki 10 element kosong dengan nama variabel x
int p;
public ArrayList(){ //construktor
p = 0;
}
void InsertLast(int x_i){ //untuk mengisi data kosong dari index terakhir p = 0 dan p+1;
x[p]=x_i;
p++;
}
void GeserKananDari(int idxAwal){ // menggeser nilai pada data index awal hingga untuk memenuhi nilai p.
for (int i=p; i>idxAwal; i--){
x[i] = x[i-1];
}
}
public void InsertFirst(int x_i){ //menggeser semua data dari indeks 0 untuk index 0 diisi data baru.
if (p>0)
GeserKananDari(0);
x[0]=x_i;
p++;
}
public int cariIdx (int cariX){ // untuk mencari data pada index,
int idx = -1; // jika ketemu maka yang akan ditampilkan adalah indexnya.
int i = 0;
while (i<p){
if (x[i]== cariX){
idx = i;
i = p;}
else
i++;}
return (idx);}
public void GeserKiriDari(int idx){ //membandingkan index untuk digeser data nya ke kiri
if (idx<=0){
idx=0;
}
else
for(int i=idx-1;i<p-1;i++){ // NB : yang dibandingkan adalah indexnya, bukan nilai pada data index!!
x[i] = x[i+1];
}}
public void RemoveFirst(){ //rata-rata digunakan untuk menghapus data pada index pertama,
GeserKiriDari(1); //atau juga bisa menghapus data pada deretan sebelum data idx.
p--; }
public void RemoveLast(){ //menghapus data pada index terakhir, lalu p berpindah ke index lebih kecil
p--;
}
public void Remove(int xdel){ // untung menghapus data yang ingin dihapus pada index.
GeserKiriDari(xdel+1);
p--;
}
public void InsertAfter(int a, int b){
int i = cariIdx(a);
if (i==-1)
System.out.println("-1");
else if (i != -1){
GeserKananDari(i+1);
x[i+1]=b;
p++;}}
public void Cetak(){ //mencetak data-data yang telah diproses dalam class ArrayList.
for(int i=0;i<p;i++){
System.out.print(x[i]+" ");
}
System.out.println("");
}
}
public class MethodAL {
public static void main(String[] args) {
ArrayList a = new ArrayList();
a.InsertLast(55);
a.InsertLast(50);
a.InsertLast(60);
a.InsertLast(70);
a.InsertLast(90);
a.InsertFirst(80);
a.GeserKiriDari(2);
a.Cetak();
a.InsertAfter(100, 20);
//System.out.println("data 60 terletak pada index = "+a.cariIdx(60));
}
}
Tidak ada komentar:
Posting Komentar