面向对象的数组
对数组进行封装,简易集合的实现。
package demo1.util; import java.util.Arrays; import javax.lang.model.util.Elements; public class MyArray { //用于存储数据的数组 private int[] elements; public MyArray() { elements=new int[0]; } //获取数组长度的方法 public int size() { return elements.length; } //往数组末尾添加一个元素 public void add(int element) { int[] newArr=new int[elements.length+1] ; for (int i = 0; i < elements.length; i++) { newArr[i]=elements[i]; } newArr[elements.length]=element; elements=newArr; } //打印所有元素到控制台 public void show() { System.out.println(Arrays.toString(elements)); } //删除数组中的元素 public void delete(int index) { //判断下标是否越界 if (index<0||index>elements.length-1) { throw new RuntimeException("下标越界"); } else { //创建一个新数组,数组长度为原数组长度-1 int[] newArr=new int[elements.length-1]; //将除去要删除的元素以外的元素复制到新数组中 for (int i = 0; i < elements.length-1; i++) { if (i<index) { newArr[i]=elements[i]; }else { newArr[i]=elements[i+1]; } } //将新数组替换成原数组 elements=newArr; } } //取出指定位置的元素 public int get(int index) { return elements[index]; } //插入一个元素到指定位置 public void insert(int element,int index) { if (index<0||index>elements.length-1) { throw new RuntimeException("下标越界"); } int[] newArr=new int[elements.length+1]; for (int i = 0; i < elements.length+1; i++) { if (i<index) { newArr[i]=elements[i]; } else if (i==index) { newArr[i]=element; } else { newArr[i]=elements[i-1]; } } elements=newArr; } //替换指定位置的元素 public void set(int element,int index) { if (index<0||index>elements.length-1) { throw new RuntimeException("下标越界"); } elements[index]=element; } }
测试类:
package demo1; import java.util.Arrays; import demo1.util.MyArray; public class TestMyArray { public static void main(String[] args) { //创建一个可变的数组 MyArray ma=new MyArray(); //获取长度 int size=ma.size(); //System.out.println(size); ma.show(); //往可变数组里面添加一个元素 ma.add(99); ma.add(98); ma.add(97); ma.add(96); ma.add(95); //System.out.println(ma.size()); //显示数组中所有元素到控制台 ma.show(); ma.delete(1); ma.show(); //System.out.println(ma.size()); int element=ma.get(1); System.out.println(element); ma.insert(100, 0); ma.show(); ma.set(33, 1); ma.show(); System.out.println(ma.size()); } }
勿在浮沙筑高台