欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Java版数据结构之面向对象的数组

程序员文章站 2022-03-22 19:09:26
...

操作简介

  • 获取数组长度
  • 打印数组
  • 末尾添加一个元素
  • 在指定位置插入一个元素
  • 删除一个元素
  • 获取指定位置元素
  • 修改指定位置元素
public class MyArray {
    private int[] elements;

    public MyArray() {
        elements=new int[0];
    }

    //获取数组长度
    public int length(){
        return elements.length;
    }

    //打印数组
    public void show(){
        for(int i=0;i<elements.length;i++){
            System.out.print(elements[i]+" ");
        }
        System.out.println();
    }

    //添加一个元素
    public void add(int element){
        int[] newArr=new int[elements.length+1];
        for(int i=0;i<elements.length;i++){
            newArr[i]=elements[i];
        }
        newArr[elements.length]=element;
        elements=newArr;
    }

    //插入一个元素
    public void insert(int index,int element){
        if(index>elements.length-1){
            throw new RuntimeException("插入索引数组越界");
        }
        int[] newArr=new int[elements.length+1];
        for(int i=0;i<elements.length;i++){
            if(i<index){
                newArr[i]=elements[i];
            }else{
                newArr[i+1]=elements[i];
            }
        }
        newArr[index]=element;
        elements=newArr;
    }

    //删除一个元素
    public void delete(int index){
        if(index>elements.length-1){
            throw new RuntimeException("删除索引数组越界");
        }
        int[] newArr=new int[elements.length-1];
        for(int i=0;i<newArr.length;i++){
            if(i<index){
                newArr[i]=elements[i];
            }else{
                newArr[i]=elements[i+1];
            }
        }
        elements=newArr;
    }

    //获取指定位置元素
    public int get(int index){
        if(index>elements.length-1){
            throw new RuntimeException("获取索引数组越界");
        }
        return elements[index];
    }

    //修改指定位置元素
    public void update(int index,int element){
        if(index>elements.length-1){
            throw new RuntimeException("修改索引数组越界");
        }
        elements[index]=element;
    }
}