数组(一)------模拟ArrayList
来源:互联网 发布:软件代理招商方案 编辑:程序博客网 时间:2024/05/21 02:32
package dataStructure;/** * 面向对象方式的对数组封装, 模拟ArrayList * @author wangtao * @date 2016-10-19 上午9:39:43 * @version v1.0 * @TODO 描述 */public class MyArray {private long[] arr;private int elements;public MyArray(){arr = new long[50];}/** * 添加数据 */public void insert(long value){arr[elements] = value;elements++;/*针对有序数据的插入 * 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 display(){System.out.println("{");for(int i = 0; i < elements; i++){System.out.println(arr[i] + " ");}System.out.println("}");}/** * 线性查找数据 */public int search(long value){int i ;for(i = 0; i < elements; i++){if(value == arr[i]){break;}}if(i == elements){return -1;}return i;}/** * 二分法查找, 前提是数据是有顺序的 * @return */public int binarySearch(long value){int middle = 0;int low = 0;int pow = elements;while(true){middle = (pow + low)/2;if(arr[middle] == value){return middle;}else if(low > pow){return -1;}else{if(arr[middle] > value){pow = middle - 1;}else{low = middle + 1;}}}}/** * 查找数据,根据索引来查 * @return */public long get(int index){if(index >= elements || index < 0){throw new ArrayIndexOutOfBoundsException();}return arr[index];}/** * 删除数据 * @param index */public void delete(int index){if(index >= elements || index < 0){throw new ArrayIndexOutOfBoundsException();} else{for(int i = index; i < elements; i++){arr[index] = arr[index+1];}elements--;}}/** * 更新数据 */public void change(int index, long newvalue){if(index >= elements || index < 0){throw new ArrayIndexOutOfBoundsException();}else{arr[index] = newvalue;}}}
0 0
- 数组(一)------模拟ArrayList
- 数组模拟ArrayList
- 批处理模拟一维数组
- 59_数组_模拟ArrayList容器的底层实现_JDK源码分析ArrayList
- 数组ArrayList
- ArrayList数组
- 数组、ArrayList
- 使用一维数组模拟栈
- ArrayList(一)
- Javascript 模拟 ArrayList
- 模拟ArrayList底层实现
- 简单模拟ArrayList集合
- 模拟ArrayList(初级)
- 数组第二十四课,模拟ArrayList容器的底层实现,JDK源码分析
- java用数组模拟实现ArrayList以及一些常用方法实现
- 基于Object/数组模拟实现ArrayList的增、删、改、查
- java中arraylist和一维数组,二维数组的转换
- array,arraylist,数组
- 获取下一天日期
- some functions of matlab used for digital images processing
- shell常用命令
- 找到结构体数组某个属性满足条件的其他属性\或满足属性条件的样本
- 获取CPUID
- 数组(一)------模拟ArrayList
- 免费的各类API接口
- 安卓中状态选择器和颜色选择器的使用
- oracle 11g 导入数据库,表空间超过32G的解决办法
- 六种方式实现hibernate查询,及IDE推荐
- 从数据库A复制数据到数据库B,视图不可用
- mysql工具percona-toolkit之安装
- 差分约束系统详解
- Rol租车网项目总结