java数组增删改查

顺序表《java》
接口

public class TestseqList {
    public static void main(String[] args) {
        SeqList seqList = new SeqList();
        seqList.add(0,1);
        seqList.add(1,2);
        seqList.add(2,3);
        seqList.add(1,4);
        seqList.add(0,8);
        seqList.add(5,9);
        seqList.add(6,11);
        seqList.add(7,12);
        seqList.add(8,13);
        seqList.add(9,14);
        seqList.add(10,15);
        System.out.println("4在线性表里?" + seqList.contains(4));
        System.out.println("0在线性表里?" + seqList.contains(0));
        System.out.println( "toFind的位置是" + seqList.search(9));
        System.out.println("第pos位置的数据" + seqList.getPos(8));
        System.out.println("删除 9 前");
        seqList.display();
        seqList.reMove(9);
        System.out.println("删除 9 之后");
        seqList.display();
        System.out.println("将第 0 位置元素设置为666");
        seqList.setPos( 0, 666);
        seqList.display();
        System.out.println("线性表有效长度size方法" + seqList.size());
        System.out.println("线性表有效长度ans" + seqList.getAns());
        System.out.println("清空线性表");
        seqList.clear();
        System.out.println("当前线性表为:");
        seqList.display();
    }
}

增删改查等内部实现

import java.util.Arrays;

public class SeqList {
    private int[] arr = new int[10];
    private int ans = 0;

    public int getAns() {
        return ans;
    }

    public void display (){
        System.out.print("[");
        for ( int i = 0; i < ans; i++){
            System.out.print(arr[i]);
            if ( i != ans - 1){
                System.out.print(" " + ",");
            }
        }
        System.out.println("]");
    }
    public void add(int pos, int data) {
        if(pos < 0 || pos > ans) {
            return;
        }
        if ( ans >= arr.length){
            enlargeArr(arr);
        }
        if (pos == ans) {
            arr[ans] = data;
            ans++;
        }else {
            for ( int i = ans ; i > pos; i-- ){
                arr[i] = arr[i - 1];
            }
            arr[pos] = data;
            ans++;
        }
    }
    public boolean contains (int toFind) {
        for ( int i = 0; i < ans; i++) {
            if (arr[i] == toFind){
                return true;
            }
        }
        return false;
    }

    public int search (int toFind) {
        for( int i = 0; i < arr.length; i++) {
            if (toFind == arr[i]){
                return i;
            }
        }
        return -1;
    }

    public int getPos(int pos) {
        return arr[pos];
    }

    public void setPos ( int pos, int value) {
        if ( pos < 0 || pos >= ans) {
            return;
        }
        arr[pos] = value;
    }

    public void reMove (int toReMove) {
        int pos = search(toReMove);
        if (pos < 0)return;
        if (pos == ans - 1){
            ans--;
        }
        for ( int i = pos; i < ans - 1; i++) {
            arr[i] = arr[i + 1];
        }
        ans--;
    }

    public int size () {
        return ans;
    }

    public void clear () {
        ans = 0;
    }
    private void enlargeArr (int[] arr) {
        int[] arr2 = new int[arr.length *2];
        arr2 = Arrays.copyOf(arr,arr.length + arr.length);
        this.arr = arr2;
    }
}
发布了21 篇原创文章 · 获赞 9 · 访问量 565

猜你喜欢

转载自blog.csdn.net/weixin_45328602/article/details/101314957