您的位置:首页 > 编程语言 > Java开发

java创建数组,实现增删改查

2016-12-12 15:59 399 查看
1:创建数组

int[] arr = new int[10];//创建数组,初始化大小为10

2:访问数据数据项

    arr[0]=1;//这个是设定她的值

            System.out.println(arr[0]);//这个是获取她的值,通过打印的方式

3:数组的初始化

int[] arr2 = new int[]{1,2,3};

二:

面向对象编程方式

1:使用自定义类来封装数组

package SJJG;

public class Myarray {

    private long[] array;

    //表示有效数据的长度

    private int elements;

    public Myarray() {

        // TODO Auto-generated constructor stub

//        在构造方法里给数组赋值

        array = new long[50];

    }

    //在重构构造方法

    public Myarray(int maxSize){

        array = new long[maxSize];//这个大小是我的构造方法里传入的

    }

    //接下来插入数据

    public void insert(int values){

        //第一次添加是为0的,即values

        array[elements]=values;

        elements++;//让她递增

        //当第二次调用这儿添加的时候,array[elements]里面是为1,然后递增为2

    }

    //显示数据

    public void diplay(){

        System.out.print("[");

        //用for循环遍历,i=0,下标为0

        for (int i = 0; i < elements; i++) {

            System.out.print(array[i]+"  ");

        }

        System.out.println("]");

    }

    //查找数据

    //我们是根据什么来查找呢?我们是根据值来查找,返回她的所有值

    public int search(long value){

        int i;//i在外面进行一个判断,然后在循环里面赋值

//        比如说我查找这个15,arry.insert(15);,那么她的索引是2

        //怎么样来查呢?同样也是经过一个循环

        for (i = 0; i < elements; i++) {

            if (value == array[i]) {//如果值是等于array[i]

//                如果查找到了,就跳出

                break;

                

            }

        }

        if(i==elements){//意思就是说for循环结束了,都查找完还没找到这个元素,就返回-1

            return -1;

        }else{

            return i;

        }

        

    }

//    查找数据,根据索引来查

    public long get(int index){

        //这个时候需要对index进行判断

        if(index >=elements || index<0)//如果index大于有效元素,或者小于0

        {

            //抛出一个异常

            throw new ArrayIndexOutOfBoundsException();

        }else{

            return array[index];

        }

        

        

    }

//删除数据

//    根据index来删除数据

    public void delete(int index){

        //删除也需要对index进行判断,判断完成后应该怎么样呢?

                if(index >=elements || index<0)//如果index大于有效元素,或者小于0

                {

                    //抛出一个异常

                    throw new ArrayIndexOutOfBoundsException();

                }

        //假设数组的值分别为1,3,4,5,如果要删除3,那么我们把4的值赋值给array[1],即3就可以了,覆盖她

//        5接着覆盖4,最后把elements减去1;表示有效长度减去1

                else{

                    //i从index开始,小于i++

                for (int i = index; i < elements; i++) {

                    //前面的值等于后面的值

                    array[index]=array[index+1];

                }

                //最后还要对有效的长度减1

                elements--;

                }

    }

    //更新数据

    public void chang(int index,int newValue){

        //同样,因为有index,所以需要判断

        if(index >=elements || index<0)//如果index大于有效元素,或者小于0

        {

            //抛出一个异常

            throw new ArrayIndexOutOfBoundsException();

        }<
4000
br />
        //思考如何进行更新?

        else{

//            只需要把index的值进行一个设置就可以了

            array[index]=newValue;

        }

    }

}

2:添加类的方法来实现数据操作

package SJJG;

public class Test {

public static void main(String[] args) {

    //创建类的实例

    Myarray arry = new Myarray();

    arry.insert(13);//插入数据

    arry.insert(12);

    arry.insert(15);

//    调用显示方法,会把数组全都打印出来

    arry.diplay();

    //进行查找

    System.out.println(arry.search(12));//打印出1,查找到

    System.out.println(arry.search(11));//查找不到,返回-1

    //进行索引查找

    System.out.println(arry.get(2));//打印出15

//    System.out.println(arry.get(4));//抛出异常

//    System.err.println(arry.get(-3));//抛出异常

    //删除数据

    arry.delete(1);

    //再进行显示

    arry.diplay();

    //进行改

    arry.chang(0,19);

    arry.diplay();//此刻13已经变成19了

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: