您的位置:首页 > 其它

超级数组

2016-06-05 19:47 225 查看
package com.lovo.superarray;

//乾坤袋

public class SuperArray {

 

 private Object[] array = new Object[10];//真正存放元素的空间

 

 private int size = 0;//1、表明放了几个元素;2、下一个元素要放的下标值 。

 

 

 //增删改查---CRUD

 //增加元素

 public void add(Object value){

  //当array放满以后,要对其进行扩容,每次扩容10个!

  if(this.size == this.array.length){

   Object[] newArray = new Object[this.array.length + 10];

   System.arraycopy(this.array, 0, newArray, 0, this.array.length);

   this.array = newArray;

  }

  this.array[size] = value;

  size++;

 }

 

 //删除元素

 public void delete(int index){

  //当array空余太多的时候,要对其进行缩容,每次减少10个。

  //当array只有10个的时候,不再进行缩容

  

  if(index >= 0 && index < this.size){

   //删除动作

   System.arraycopy(this.array, index + 1, this.array, index, this.size - index - 1);

   this.size--;

   //缩容动作

   if(this.array.length - this.size >= 10 && this.array.length > 10){

    Object[] newArray = new Object[this.array.length - 10];

    System.arraycopy(this.array, 0, newArray, 0, this.size);

    this.array = newArray;

   }

   

   

  }

 }

 

 //修改指定位置的元素

 public void update(int index,Object value){

  if(index >= 0 && index < this.size){

   this.array[index] = value;

  }

 }

 

 //查询元素

 public Object get(int index){

  if(index >= 0 && index < this.size){

   return this.array[index];

  }else{

   throw new IndexOutOfBoundsException();

  }

 }

 

 //查询元素个数

 public int size(){

  return this.size;

 }

 

 //返回容量

 public int capibility(){

  return this.array.length;

 }

 

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: