超级数组

超级数组

package com.ydlclass;

/**
 * 超级数组
 */
public class SuperArray {

    int [] elements;
    int currentIndex = -1;

    public SuperArray(){
        this(10);
    }
    public SuperArray(int capacity){
       elements = new int[capacity];
    }
    //对数据增删改
    //增加一个元素,尾插
    public void add(int data){
        //下标自增
        currentIndex++;
        if (currentIndex > elements.length-1){
            int[] temp = new int[elements.length*2];
            for (int i = 0; i < elements.length; i++) {
                temp[i] = elements[i];
            }
            elements = temp;
        }
        elements[currentIndex] = data;
    }
    //删除数据
    public void delete(int index){
        if (index < 0 || index > elements.length-1){
            System.out.println("您删除的下标["+index+"]不在范围之内。");

        }else {
            for (int i = index + 1; i < elements.length; i++) {
                elements[i - 1] = elements[i];
            }
            currentIndex --;
        }

    }
    //改变数据
    public void set(int index,int data){
        if (index < 0 || index > elements.length-1){
            System.out.println("您修改的数据下标不存在!");
        }else {
            elements[index] = data;
        }
    }
    //查找数据
    public Integer select(int index){
        if (index < 0 || index > elements.length-1){
            System.out.println("您查找的下标["+index+"]不在范围之内。");
            return null;
        }else {
            return elements[index];
        }
    }
    //变String数据打印输出
    public String arrayToString(){
        String result = "[";
        for (int i = 0; i <= currentIndex; i++) {
            result += elements[i]+",";
        }
        return result = result.substring(0,result.length()-1)+"]";
    }
    //排序
    public void sort(){
        for (int i = 0; i < currentIndex; i++) {
            for (int j = 0; j < currentIndex - i; j++) {
                if (elements[j] > elements[j + 1]){
                    int temp = elements[j];
                    elements[j] = elements[j + 1];
                    elements[j + 1] = temp;
                }
            }

        }
    }
}
package com.ydlclass;

public class Test {
    public static void main(String[] args) {
        SuperArray superArray = new SuperArray(3);
        superArray.add(14);
        superArray.add(51);
        superArray.add(1);
        superArray.add(2);
        superArray.delete(8);
        superArray.set(2,100);
        superArray.sort();
        System.out.println(superArray.select(7));
        System.out.println(superArray.arrayToString());
    }


}

您删除的下标[8]不在范围之内。
您查找的下标[7]不在范围之内。
null
[2,14,51,100]

Process finished with exit code 0
posted @ 2022-05-23 21:34  追风的羊  阅读(63)  评论(0)    收藏  举报