定义变量

首先要想实现该块代码,必须定义三个私有变量。

private Object[] elementData;该变量用来存储容器中元素的个数。

private int size;该变量表示当前容器已经存在的元素个数;

private static finnal int FAULT_CAPACITY = 10;默认当前容器允许存储的元素个数为10个。

定义构造方法

其核心代码如下所示:

public Test(int index){

if(size<0){

throw new RunTimeException('容器容量不能为负数!");

}else if(size==0){

elementData = new Object[FAULT_CAPACITY];

}else{

elementData = new Object[index];

}

}

main主方法

其核心代码如下所示:

public static void main(String[] args){

Test t = new Test(2);

}

添加元素方法

其核心代码如下所示:

public void add(E element){

if(size==elementData.length){

Object[] newArray = new Object[elementData.length+(elementData.length>>1)];

System.arraycopy(elementData,0,newArray,0,elementData.length);

elementData = newArray;

}

elementData[size++] = element;

}

判断索引是否合法方法

其核心代码如下所示:

public void checkArrage(int index){

if(index<0||index>size-1){

throw new RunTimeException("当前索引不合法!+index");

}

获得元素个数方法

其核心代码如下所示:

public int size(){

return size;

}

判断容器是否为空方法

其核心代码如下所示:

public boolean isEmpty(){

return size==0?true:false;

}

获得指定位置元素方法

其核心代码如下所示:

public E get(int index){

checkArrage(index);

return (E)elementData[index];

}

移除元素方法

其核心代码如下所示:

public void move(E element){

for(int i=0;i<size;i++){

if(element.equals(get(i))){

}

}

}

移除指定位置元素方法

其核心代码如下所示:

public void move(int index){

checkArrage(index);

int nummoved = size-index-1;

if(nummoved>0){

System.arraycopy(elementData,index+1,elementData,index,nummoved){

}

elementData[--size] = null;

}

}

设定方法

其核心代码如下所示:

public void set(int index, E element){

checkArrage(index);

elementData[index] = element;

}

字符转换方法

其核心代码如下所示:

public String toString(){

StringBulider sb = new StringBulider();

sb.append('[');

for(int i=0;i<size;i++){

sb.append(elementData[i]+",");

}

sb.setCharAt(sb.length()-1,']');

return sb.toString();

}

PS:以上方法只需要在main方法里面调用就行。

最新文章

  1. 【原】tomcat 7 启动报错:java.lang.NoSuchMethodError: javax.servlet.ServletContext.getSessionCookieConfig()Ljavax/servlet/SessionCookieConfig的解决
  2. C+继承
  3. SQL 截取字符串
  4. 深入浅出Mybatis系列(五)---TypeHandler简介及配置(mybatis源码篇)
  5. ACM 擅长排列的小明
  6. SQL——神奇代码1之Update
  7. socket 简介
  8. Spring实现AOP的4种方式(转)
  9. Nginx高性能服务器安装、配置、运维 (6) —— Nginx日志及日志分割
  10. mac中遇到的mysql编码问题
  11. 临时笔记:flume+ CDH 的 twitter实例
  12. MyEclipse修改项目名称后,部署到tomcat问题。
  13. 剑指架构师系列-Logstash分布式系统的日志监控
  14. 【玩转开源】BananaPi R2 —— 第二篇 Openwrt 网口配置分析
  15. ef.core Mysql
  16. httpclient方式调用接口
  17. 使用IDEA新建Web工程启动报404的错误
  18. 1.2 Stream API
  19. JAVA基础部分复习(五、JAVA反射)
  20. Shell - 简明Shell入门06 - 循环语句(Loop)

热门文章

  1. 安装和使用redis
  2. docker commit理解构建镜像(7)
  3. centos7.4安装docker
  4. SpringCloudAlibaba实战教程系列
  5. TCP链接的三次握手与四次断开
  6. resetlogs 打开数据库时新生成日志位置问题
  7. How to get binary string from ArrayBuffer?
  8. 一个poll的简单例子
  9. andorid jar/库源码解析之EventBus
  10. python学习笔记-零碎知识点