加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

Java数据结构 - 面向对象的数组(基于基本类型数组的操作)

发布时间:2020-12-15 07:40:06 所属栏目: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 el
  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 }

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读