线性表数组实现
来源:互联网 发布:mysql进程意外终止 编辑:程序博客网 时间:2024/05/21 21:18
/** * 线性表,数组实现 * @author yuli * */public class MyArrayList<T> { private static final int DEFAULT_CAPACITY = 10;//默认容量 private int size; private Object[] items; public MyArrayList() { clean(); } public void clean(){ this.size=0; swap(DEFAULT_CAPACITY); } public int size(){ return size; } /** * 在索引下替换一个元素 * @param t * @param index * @return */ public T set(T t,int index){ if(index < 0 || index > size){ throw new ArrayIndexOutOfBoundsException(index); } @SuppressWarnings("unchecked") T old = (T) items[index]; items[index] = t; return old; } /** * 获得索引下的元素 * @param index * @return */ @SuppressWarnings("unchecked") public T get(int index){ if(index < 0 || index> size){ throw new ArrayIndexOutOfBoundsException(index); } return (T) items[index]; } /** * 在末尾添加一个元素 * @param t */ public void add(T t){ if(size == items.length){ swap(size * 2 + 1); } items[size++] = t; } /** * 在索引下增加一个元素 * @param t * @param index */ public void add(T t,int index){ if(index < 0 || index> size){ throw new ArrayIndexOutOfBoundsException(index); } //如果元素的长度等于改元素添加元素的个数,就扩容 if(size == items.length){ swap(size * 2 + 1); } for(int i = size ;i > index;i++){ items[i] = items[i-1]; } items[index] = t; size++; } /** *移除索引的元素 ** @SuppressWarnings("unchecked") public T remove(int index){ if(index < 0 || index> size){ throw new ArrayIndexOutOfBoundsException(index); } Object item = items[index]; for(int i = index;i<size;i++){ items[i] = items[i+1]; } size--; return (T) item; } /** * 扩容,交换元素 * @param newSize */ public void swap(int newSize){ if(newSize < size){ return; } Object[] newItems = new Object[newSize]; for(int i=0;i<this.size;i++){ newItems[i]=items[i]; } this.items = newItems; }}
阅读全文
0 0
- 线性表-数组实现
- 线性表数组实现
- 用数组实现线性表
- java 数组实现线性表
- 线性表的数组实现
- 线性表实现之一:数组
- 【数据结构】线性表(数组实现)
- 用数组实现线性表
- 用数组实现线性表
- 用数组实现线性表
- java实现线性表(数组实现)
- java 用动态数组实现线性表
- 线性顺序表(动态数组实现)
- 线性表—由数组实现
- MyArrayList(数组线性表的实现)
- 数组实现线性表的顺序存储
- C++用数组实现的线性表
- java数据结构:线性表之数组实现
- JS产生随机数的几个用法!
- UVA
- HDU 1848 Fibonacci again and again (SG函数 模板)
- jdk安装
- 图像语义分割之FCN和CRF
- 线性表数组实现
- Virus_C#_SampleAnalysis
- 卓有成效的管理者(笔记)——卓有成效是可以学会的
- JqGrid学习总结12_排序
- LINUX开启端口号,使别的机器可以访问
- 采用rand生成随机数方法
- python核心编程
- 循环神经网络(RNN, Recurrent Neural Networks)介绍
- 杭州同花顺面试