接着昨天的Array List类

渡星河
2022-11-17 / 0 评论 / 18 阅读 / 正在检测是否收录...
温馨提示:
本文最后更新于2022年11月17日,已超过671天没有更新,若内容或图片失效,请留言反馈。
public class ArrayList {
    //定义初始变量
    static int chu = 4;
    //创建一个初始数组,不给值节省内存
    static int[] array = null;
    //定义一个变量用于计算有多少元素
    static int total = 0;
    public static void main(String[] args) {
        //初始化数组
        initialize();
        //添加数组
        add(69);
        add(67);
        //add(68);
        //插入
        insert(70,1);
        //删除
        delete(1,2);
        //查找元素
        System.out.println(get(2));
        traverse();
        System.out.println("是否有序 : " + isSorted());

        System.out.println("数组大小 : " + getSize());
        System.out.println("数组是否为空 : " + isEmpty());
    }
    public static void initialize(){
        //给初始数组一个值,初始化
        array = new int[chu];
    }
    //添加数组内容
    public static void add(int num){
        array[total]=num;
        total++;
    }
    //遍历数组
    public static void traverse(){
        for (int j : array) {
            System.out.print(j + "\t");
        }
        System.out.println("\ntotal="+total);
    }
    //复制数组
    public static void copy(int start,int end){
        int[] temp = array;
        int count = 0;
        array = new int[(end-start)*2];
        for (int i = start;i<end;i++){
            array[count++]=temp[i];
        }
        //遍历
        for (int j : temp) {
            System.out.print(j+"\t");
        }
    }
    public static void insert(int value,int location){
        for (int i = total;i > location;i--){
            array[i]=array[i-1];
        }
        array[location]=value;
        total++;
    }
    public static void delete(int start,int end){
        while(end < total) {
            array[start++] = array[end++];
        }
        total = start;
    }
    public static int get(int value){
        return array[value];
    }
    //判断数组是否有序
    public static boolean isSorted(){
        for (int i=0;i<total;i++){
            if (array[i]>array[i+1]) return false;
        }
        return true;
    }
    //扩容
    public static void grow(){
        if (total< array.length){
            int[] tmp=array;
            array=new int[array.length*2];
            for (int j : tmp){
                array[j]=tmp[j];
            }
            //回收内存
            tmp=null;
        }
    }
    public static int getSize() {
        return total;
    }

    public static boolean isEmpty() {
        return total == 0;
    }
}






1

评论 (0)

取消