演算法與資料結構筆記5——線性結構之面向物件的陣列
阿新 • • 發佈:2019-01-05
面向物件的陣列
程式碼示例:
1.建立一個面向物件的類MyArray
import java.util.Arrays; 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)); } /** * 刪除陣列中的元素 * * @param index 陣列中的下標 */ public void delete(int index) { // 判斷下標是否越界 if (index < 0 || index > elements.length - 1) { throw new RuntimeException("下標越界"); } // 建立一個新的陣列,長度為原陣列的長度-1 int[] newArr = new int[elements.length - 1]; // 複製原有資料到新陣列中 for (int i = 0; i < newArr.length; i++) { // 想要刪除的元素前面的元素 if (i < index) { newArr[i] = elements[i]; } else { // 想要刪除的元素後面的元素 newArr[i] = elements[i + 1]; } } // 新陣列替換舊陣列 elements = newArr; } /** * 取出指定位置的元素 * * @param index 陣列下標 */ public int get(int index) { // 判斷下標是否越界 if (index < 0 || index > elements.length - 1) { throw new RuntimeException("下標越界"); } else { return elements[index]; } } /** * 插入一個元素到指定位置 * * @param index 插入元素下標 * @param element 插入的內容 */ public void insert(int index, int element) { // 建立一個新的陣列 int[] newArr = new int[elements.length + 1]; // 將原陣列中的元素放入新的陣列中 for (int i = 0; i < elements.length; i++) { // 目標位置之前的元素 if (i < index) { newArr[i] = elements[i]; } else { // 目標位置之後的元素 newArr[i + 1] = elements[i]; } } // 插入新的元素 newArr[index] = element; // 新陣列替換舊陣列 elements = newArr; } /** * 替換指定位置的元素 * * @param index 元素下標 * @param element 替換的內容 */ public void set(int index, int element) { // 判斷下標是否越界 if (index < 0 || index > elements.length - 1) { throw new RuntimeException("下標越界"); } else { elements[index] = element; } } }
2.建立一個TestMyArray測試類
import domo1.util.MyArray; public class TestMyArray { public static void main(String[] args) { // 建立一個可變得陣列 MyArray ma = new MyArray(); // 獲取陣列長度 int size = ma.size(); ma.show(); // 往可變陣列中新增元素 ma.add(99); ma.add(98); ma.add(97); // 顯示可變陣列中的所有元素到控制檯 ma.show(); // 刪除某個元素 ma.delete(1); ma.show(); // 取出指定位置的元素 int element = ma.get(1); System.out.println(element); System.out.println("====================="); ma.add(96); ma.add(95); ma.add(94); ma.show(); // 插入元素到指定位置 ma.insert(3, 33); ma.show(); System.out.println("====================="); // 替換指定位置的元素 ma.set(0, 100); ma.show(); } }
總結
上面的程式碼例項,自定義了一個int陣列。如果小夥伴們要建立一個其他的陣列改變一下型別,做一些細節處理就好了。