java集合数据结构实现
来源:互联网 发布:2016淘宝双11成交额 编辑:程序博客网 时间:2024/05/25 18:09
自定义集合类和java数据结构底层的实现
对ArrayList的实现,实际就是动态数组 代码分析package cn.itcast.shujujiegou;
package cn.itcast.shujujiegou;import java.util.Iterator;/** * Created by likailong on 2016/9/27. */public class MyArrayList<T > implements Iterable<T> { private static final int DEFAULT_SIZE=10; private int theSize; private T [] theItems; public MyArrayList(){ doClear(); } public void clear(){ doClear(); } private void doClear() { theSize=0; ensureCapacity(DEFAULT_SIZE); } public void trimToSize(){ ensureCapacity(size()); } public T get(int index){ if(index<0||index>=size()) throw new IndexOutOfBoundsException("数组脚标越界"); return theItems[index]; } public T set(int index,T element){ if(index<0||index>=size()) throw new IndexOutOfBoundsException("数组脚标越界"); T old=theItems[index]; theItems[index]=element; return old; } public boolean add(T element){ add(size(),element); return true; } public void add(int index,T element){ if(theItems.length==size()) ensureCapacity(size()*2+1); for(int i=size();i>index;i--){ theItems[i]=theItems[i-1]; } theItems[index]=element; theSize++; } public T remove(int index){ T remove=theItems[index]; for(int i=index;i<size()-1;i++) theItems[i]=theItems[i+1]; theSize--; return remove; } public void ensureCapacity(int newCapacity) { if(newCapacity<theSize) return ; T [] old=theItems; theItems=(T[])new Object[newCapacity]; for(int i=0;i<size();i++) theItems[i]=old[i]; } public String toString(){ StringBuilder s=new StringBuilder(); s.append("["); for(int i=0;i<theSize;i++){ s.append(","+theItems[i]); } s.append("]"); return s.toString(); } public int size() { return theSize; } public boolean isEmpty(){ return size()==0; } @Override public Iterator<T> iterator() { return new ArrayListLiterator(); } private class ArrayListLiterator implements Iterator<T>{ private int current=0; @Override public boolean hasNext() { return current<size(); } @Override public T next() { return theItems[current++]; } public void remove(){ MyArrayList.this.remove(--current); } }}
1 0
- java集合数据结构实现
- Java集合类数据结构
- JAVA集合数据结构
- JAVA集合数据结构
- Java集合的数据结构
- Java集合与数据结构
- java 集合的数据结构
- JAVA集合数据结构
- Java集合数据结构
- [数据结构JAVA版]集合
- Java集合与数据结构
- JAVA数据结构之集合
- JAVA 常用集合 数据结构
- JAVA (集合和数据结构)
- java数据结构-集合
- java 集合框架-利用LinkedList实现堆栈数据结构
- 集合数据结构的C++实现
- java的集合与数据结构
- 基于LPC11E68搭建Keil开发环境
- hadoop添加节点
- LeetCode : Majority Element
- 我是一个线程(对理解多线程很有帮助)
- java 解决double运算精度问题(使用BigDecimal )
- java集合数据结构实现
- 使用PhotonServer和Unity建立一个棋牌类游戏实例(三)Unity客户端的注册请求和服务器的注册请求响应
- 大一的一些事
- LeetCode : Plus One
- flume高并发优化——(12)filesource 支撑文件组&兼容cat监控
- 没找到第三方框架文件问题
- HDU 1203 I NEED A OFFER! by Assassin
- Linux服务器配置——搭建SVN服务器
- python语言编写KNN程序