Java顺序表

在我的认知里,顺序表就相当于数组一样的连续元素的存储载体,其实就是数组arr吧,使用顺序表我们需要知道这个顺序表的有效个数多少个,下面我们称为int useSize

本质就是创造一个类,然后形成顺序表这一个对象?

1.下面就放了顺序表的使用

import java.util.Arrays;

public class MyOwnArrayList {//顺序表
    public int [] arr;
    public int usedSize;//默认0,当前有效数据个数,      问: 怎么确定usedSize的值?
    public MyOwnArrayList(){//进入这个类
        this.arr=new int[10];
    }
    public int size(){//获取有效数据个数
        return this.usedSize;
    }
    public void display(){//输出顺序表
        for(int i=0;i<this.usedSize;i++){
            System.out.print(arr[i]+" ");
        }
        System.out.println();
    }
    public boolean ifFull(){
        if(this.usedSize==this.arr.length) return true;
        else return false;
    }

    public void add(int position,int data){//增加元素
        if (ifFull()==true) {
            this.arr=Arrays.copyOf(this.arr,this.arr.length+1);
        }
        for(int i=this.usedSize-1;i>=position;i--){

            this.arr[i+1]=this.arr[i];
        }
        this.arr[position] = data;
        this.usedSize++;

        System.out.println();
    }
    public void change(int position,int data){
        if(position<0||position>this.usedSize){
            System.out.println("位置不合法");
        }
        else this.arr[position]=data;
    }
    public void decline(int data){//删除某一项
        for(int i=0;i<usedSize-1;i++) {
            if(arr[i]==data){
                arr[i]=arr[i+1];//往后挪
                usedSize--;//将后面的项代替前面的项
            }
        }

    }

    

public class TextMyOwnArrayList {
    public static void main(String[] args) {
        MyOwnArrayList List1 =new MyOwnArrayList();
        List1.arr= new int[]{1, 2, 3, 5,6};
        //List1.display();//调用display
        MyOwnArrayList List2=new MyOwnArrayList();
        List2.add(0,1);
        List2.add(1,2);
        List2.add(3,0);
        List2.add(4,2);
        List2.add(5,1);
        List2.display();
        //List2.change(1,15);
        List2.display();
        List2.decline(2);
        List2.display();

}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值