Java基础容器 -- 数组

来源:互联网 发布:型材优化软件破解版 编辑:程序博客网 时间:2024/04/29 08:38

Java封装数组工具类

数组作为编程语言最基本的数据结构,自然也是用的最多的数据结构形式之一。对于java语言,java的API中提供了大量的关于数据的操作API,比如 Arrays工具类和 ArrayList类。

但是如何按照面向对象的方式来封装我们自己的java数组操作类呢?本文就带你实现一个简单的java工具类,包含数组的初始化,数组的打印,数组元素的CRUD等等。

下给出相应的数组封装类代码:

package com.zh.Array;public class MyArray {private long[] arr;private int elements;/** * 默认的数组初始化 */public MyArray() {arr = new long[100];}/** * 用户指定长度的数组初始化 *  * @param maxSize */public MyArray(int maxSize) {arr = new long[maxSize];}/** * 添加元素到数组中 */public void insert(long value) {arr[elements] = value;elements++;}/** * 添加元素到数组中(生成有序数组) */public void insertSort(long value) {int i;for (i = 0; i < elements; i++) {if (arr[i] > value) {break;}}for (int j = elements; j > i; j--) {arr[j] = arr[j - 1];}arr[i] = value;elements++;}/** * 打印数组元素 */public void showArray() {System.out.print("[");for (int i = 0; i < elements; i++) {if (i == elements - 1) {System.out.println(arr[i] + "]");} else {System.out.print(arr[i] + " ");}}}/** * 暴力查找数据 */public int search(long value) {int i;for (i = 0; i < elements; i++) {if (arr[i] == value) {break;}}if (i == elements) {return -1;} else {return i;}}/** * 二分查找数据 */public int binarySearch(long value) {int middle = 0;int low = 0;int high = elements;while (true) {middle = (high + low) / 2;if (arr[middle] == value) {return middle;} else if (high < low) {return -1;} else {if (arr[middle] > value) {high = middle - 1;} else {low = middle + 1;}}}}/** * 根据索引 检索数据 */public long get(int index) {if (index < 0 || index >= elements) {throw new ArrayIndexOutOfBoundsException();} else {return arr[index];}}/** * 删除元素 */public void delete(int index) {if (index < 0 || index >= elements) {throw new ArrayIndexOutOfBoundsException();} else {for (int i = index; i < elements; i++) {arr[i] = arr[i + 1];}elements--;}}/** * 更新数据 */public void update(int index, long value) {if (index < 0 || index >= elements) {throw new ArrayIndexOutOfBoundsException();} else {arr[index] = value;}}}

上面是一些简单的方法的封装,当然也可以键入其他的更多操作,比如 冒泡排序方法、数组逆序、数组复制等等。在此不再列举,有兴趣的读者可以自己丰富实现。

原创粉丝点击