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;}}}
上面是一些简单的方法的封装,当然也可以键入其他的更多操作,比如 冒泡排序方法、数组逆序、数组复制等等。在此不再列举,有兴趣的读者可以自己丰富实现。
阅读全文
0 0
- Java基础容器 -- 数组
- java基础-数据容器之数组
- Java容器分析--数组
- Java容器分析--数组
- Java 容器与数组
- Java容器分析--数组
- java数组与容器
- Java容器基础
- Java基础_容器
- Java基础-容器
- Java容器类基础
- Java基础----容器List
- Java基础:容器
- 【Java基础】容器
- java基础-容器
- java基础--容器
- Java基础--容器
- java基础(2)-容器
- 解决方案 Rect width exceeds maximum margin
- Oracle-contains函数解析
- 软件工程作业--01 四则运算生成器
- DirectX?
- HihoCoder
- Java基础容器 -- 数组
- Ubuntu安装chrome出现问题的解决办法
- C[a,b]在L1下到其子空间的最佳逼近
- Android单元测试学习笔记
- Vue2+VueRouter2+Webpack+Axios 构建项目实战2017重制版(一)基础知识概述
- LeetCode 84
- Can not find the tag library descriptor for "http://java.sun.com/jsp/jstl/core
- Lecture 10: Divide and conquer methods, merge sort, exceptions
- 第一篇博文