Java数据结构

  1 import java.util.Arrays;
  2 
  3 class MyArray {
  4     public MyArray() {
  5         elements = new int[0];
  6     }
  7     
  8     // 获取数组长度的方法
  9     public int size() {
 10         return elements.length;
 11     }
 12 
 13     // 往数组的末尾添加一个元素
 14     public void add(int element) {
 15         // 创建一个新的数组
 16         int[] newArr = new int[elements.length+1];
 17         // 把原数组中的元素复制到新数组中
 18         for (int i = 0; i < elements.length; i++) {
 19             newArr[i] = elements[i];
 20         }
 21         // 把要添加的元素放入新数组中
 22         newArr[elements.length] = element;
 23         // 使用新数组替换旧数组
 24         elements = newArr;
 25     }
 26 
 27     // 打印所有元素到控制台
 28     public void show() {
 29         System.out.println(Arrays.toString(elements));
 30     }
 31 
 32     // 删除数组中的元素
 33     public void delete(int index) {
 34         // 判断下标是否越界
 35         if (index < 0 || index >= elements.length) {
 36             throw new RuntimeException("下标越界");
 37         }
 38         // 创建一个新的数组,长度为原数组的长度-1
 39         int[] newArr = new int[elements.length-1];
 40         // 复制原有数据到新数组;
 41         for (int i = 0; i < newArr.length; i++) {
 42             // 想要删除的元素前面的元素
 43             if (i < index) {
 44                 newArr[i] = elements[i];
 45                 // 想要删除的元素后面的元素
 46             } else {
 47                 newArr[i] = elements[i+1];
 48             }
 49             // 新数组替换旧数组
 50             elements = newArr;
 51         }
 52     }
 53 
 54     //获取某个元素
 55     public int get(int index) {
 56         // 判断下标是否越界
 57         if (index < 0 || index >= elements.length) {
 58             throw new RuntimeException("下标越界");
 59         }
 60         return elements[index];
 61     }
 62 
 63     // 插入一个元素到某个位置
 64     public void insert(int index, int element) {
 65         // 创建一个新的数组
 66         int[] newArr = new int[elements.length+1];
 67         // 将原数组中的元素放入新数组中
 68         for (int i = 0; i < elements.length; i++) {
 69             // 目标位置之前的元素
 70             if (i < index) {
 71                 newArr[i] = elements[i];
 72                 // 目标位置之后的元素
 73             } else {
 74                 newArr[i+1] = elements[i];
 75             }
 76         }
 77         // 插入新的元素
 78         newArr[index] = element;
 79         // 新数组替换旧数组
 80         elements = newArr;
 81     }
 82 
 83     //替换指定位置的元素
 84     public void set(int index, int element) {
 85         // 判断下标是否越界
 86         if (index < 0 || index >= elements.length) {
 87             throw new RuntimeException("下标越界");
 88         }
 89         elements[index] = element;
 90     }
 91 
 92     // 用于存储数据的数组
 93     private int[] elements;
 94 
 95 }
 96 
 97 public class Main {
 98     public static void main(String[] args) {
 99         // 创建一个可变的数组
100         MyArray ma = new MyArray();
101         
102         // 获取长度
103         int size = ma.size();
104         System.out.println(size);
105         
106         // 往可变数组中添加一个元素
107         ma.add(99);
108         ma.add(98);
109 
110         // 显示可变数组中的所有元素到控制台
111         ma.show();
112         
113         // 删除某个元素
114         ma.delete(0);
115 
116         // 获取某个元素
117         System.out.println(ma.get(0));
118 
119         ma.add(96);
120         // 插入一个新的元素到指定位置
121         ma.insert(1, 97);
122         ma.show();
123 
124         // 替换指定位置的元素
125         ma.set(-1, 99);
126         ma.show();
127     }
128 }
原文地址:https://www.cnblogs.com/GjqDream/p/11572377.html