Java 数据结构数组实现(增删改查)

1、删除原理:
这里写图片描述

package com.struct.array;

/**
 * @描述         基本数组
 * @项目名称      Java_DataStruct
 * @包名         com.struct.array
 * @类名         BasicArray
 * @author      chenlin
 * @date        2011年6月20日 下午8:41:21
 */

public class BasicArray {
    //数组
    private long arr[];
    //数组的有效长度
    private int elements;
    //数组的最大长度
    private int max;
    //初始化
    public BasicArray(int max){
        this.max = max;
        arr = new long[max];
    }

    /**
     * 插入数据
     * @param value
     */
    public void insert(long value){
        if (elements > max) {
            throw new ArrayIndexOutOfBoundsException();
        }
        arr[elements] = value;
        elements ++ ;
    }

    /**
     * 显示全部数据
     */
    public void display(){
        System.out.print("[");
        for (int i = 0; i < elements; i++) {
            System.out.print(" "+ arr[i]);
        }
        System.out.println(" ]");
    }

    /**
     * 根据值查找索引
     * @param value
     * @return
     */
    public int search(long value){
        int i;
        for (i = 0; i < elements; i++) {
            //表示找到,退出循环
            if (arr[i] == value) {
                break;
            }
        }
        if (i == elements) {
            return -1;
        }else {
            return i;
        }
    }

    /**
     * 根据索引查找数值
     * @param index
     * @return
     */
    public long get(int index){
        if (index > elements || index < 0) {
            throw new ArrayIndexOutOfBoundsException();
        }
        return arr[index];
    }

    /**
     * 更改index上的值
     * @param index
     * @param value
     */
    public void change(int index, long value){
        if (index > elements || index < 0) {
            throw new ArrayIndexOutOfBoundsException();
        }
        arr[index] = value;
    }

    /**
     * 删除index上的数据
     * @param index
     */
    public void delete(int index){
        if (index > elements || index < 0) {
            throw new ArrayIndexOutOfBoundsException();
        }else {
            for (int i = index; i < elements; i++) {
                arr[i] = arr[i + 1];
            }
            elements --;
        }
    }

    public static void main(String[] args) {
        BasicArray array = new BasicArray(30);
        array.insert(22);
        array.insert(12);
        array.insert(34);
        array.insert(44);
        array.insert(86);
        array.insert(57);
        //显示
        array.display();
        System.out.println("======================================");
        //查找
        System.out.println(array.search(12));
        System.out.println("======================================");
        //修改
        array.change(2, 50);
        array.display();
        System.out.println("======================================");
        //删除
        array.delete(3);
        array.display();
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

lovoo

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值