java 数据结构数组

来源:互联网 发布:python 定时任务 编辑:程序博客网 时间:2024/05/16 18:47

Java数组
数组的优点:省内存,按下表查找速度快
缺点:一旦确定就不能改变长度
适合储存:不需要要增加长度的数据

import sun.applet.Main;/** * @author SumYu * @version v1.0 * @date 2017/8/15 * 自定义数组 */public class MyArrary {    private long[] arr;    //有效长度    private int elements;    public MyArrary() {        arr = new long[50];    }    public MyArrary(int maxsize) {        arr = new long[maxsize];    }    //插入    public void insert(long value) {        arr[elements] = value;        elements++;    }    //删除    public void delete(int index) {        if (index < 0 || index >= elements) {            throw new ArrayIndexOutOfBoundsException("输入错误");        }        for (int i = index; i < elements; i++) {            arr[index] = arr[index + 1];        }        elements--;    }    //显示    public void dislplay() {        System.out.print("[");        for (int i = 0; i < elements; i++) {            System.out.print(arr[i] + " ");        }        System.out.print("]");    }    //改变    public void update(int index, long value) {        if (index < 0 || index >= elements) {            throw new ArrayIndexOutOfBoundsException("输入错误");        }        arr[index] = value;    }    //查找    public void seach(long value) {        for (int i = 0; i < elements; i++) {            if (arr[i] == value) {                System.out.print("查找成功");                break;            }        }        System.out.print("查找失败");    }    //插入    public void insertIndex(long value, int index) {        if (index >= elements) {            throw new IndexOutOfBoundsException("越界");        }        elements++;        for (int i = elements; i >= index; i--) {            arr[i] = arr[i - 1];        }        arr[index] = value;    }    //交换    public void change(int num1, int num2) {        if ((elements >= num1 && num1 >= 0) && (0 <= num2 && num2 <= elements)) {            long temp = arr[num1];            arr[num1] = arr[num2];            arr[num2] = temp;        }    }    //二分查找    public int binarySearch(long num){        int hig = elements;        int low = 0;        int middle = 0;        while (true) {            middle = (low + hig) / 2;            if (low > hig) {                return -1;            } else if (num == arr[middle]) {                return 1;            } else {                if (num > arr[middle]) {                    low = middle + 1;                }                if (num < arr[middle]) {                    hig = middle - 1;                }            }        }    }}
原创粉丝点击