Array

举报
bigdata张凯翔 发表于 2021/04/27 01:15:02 2021/04/27
【摘要】 package array; /** 数组的插入、删除、按照下标随机访问操作; 2)数组中的数据是int类型的; */ public class Array { //定义整型数据data保存数据 public int data[]; //定义数组长度 private int n; //定义中实际个数 private int count; //构造方法,定义数组大小 ...

package array;

/**

    1. 数组的插入、删除、按照下标随机访问操作;
  • 2)数组中的数据是int类型的;
    */
    public class Array {
    //定义整型数据data保存数据
    public int data[];
    //定义数组长度
    private int n;
    //定义中实际个数
    private int count;

     //构造方法,定义数组大小
    

    public Array(int capacity){
    this.data = new int[capacity];
    this.n = capacity;
    this.count=0;//一开始一个数都没有存所以为0
    }

    //根据索引,找到数据中的元素并返回
    public int find(int index){
    if (index<0 || index>=count) return -1;
    return data[index];
    }

    //插入元素:头部插入,尾部插入
    public boolean insert(int index, int value){
    //数组中无元素

     //if (index == count && count == 0) {
     // data[index] = value;
     // ++count;
     // return true;
     //}
    
     // 数组空间已满
     if (count == n) { System.out.println("没有可插入的位置"); return false;
     }
     // 如果count还没满,那么就可以插入数据到数组中
     // 位置不合法
     if (index < 0||index > count ) { System.out.println("位置不合法"); return false;
     }
     // 位置合法
     for( int i = count; i > index; --i){ data[i] = data[i - 1];
     }
     data[index] = value;
     ++count;
     return true;
    

    }
    //根据索引,删除数组中元素
    public boolean delete(int index){
    if (index<0 || index >=count) return false;
    //从删除位置开始,将后面的元素向前移动一位
    for (int i=index+1; i<count; ++i){
    data[i-1] = data[i];
    }
    //删除数组末尾元素 这段代码不需要也可以
    /int[] arr = new int[count-1];
    for (int i=0; i<count-1;i++){
    arr[i] = data[i];
    }
    this.data = arr;
    /

     --count;
     return true;
    

    }
    public void printAll() {
    for (int i = 0; i < count; ++i) {
    System.out.print(data[i] + " ");
    }
    System.out.println();
    }

    public static void main(String[] args) {
    Array array = new Array(5);
    array.printAll();
    array.insert(0, 3);
    array.insert(0, 4);
    array.insert(1, 5);
    array.insert(3, 9);
    array.insert(3, 10);
    //array.insert(3, 11);
    array.printAll();
    }
    }

文章来源: www.jianshu.com,作者:百忍成金的虚竹,版权归原作者所有,如需转载,请联系作者。

原文链接:www.jianshu.com/p/61aa7304e300

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。