js实现ArrayList功能附实例代码

  1.ArrayList方法摘要

  构造方法摘要

  ArrayList()

  构造一个初始容量为 10 的空列表。

  ArrayList(Collection<? extends E> c)

  构造一个包含指定 collection 的元素的列表,这些元素是按照该 collection 的迭代器返回它们的顺序排列的。

  ArrayList(int initialCapacity)

  构造一个具有指定初始容量的空列表。

  方法摘要

  boolean add(E e)

  将指定的元素添加到此列表的尾部。

  void add(int index, E element)

  将指定的元素插入此列表中的指定位置。

  boolean addAll(Collection<? extends E> c)

  按照指定 collection 的迭代器所返回的元素顺序,将该 collection 中的所有元素添加到此列表的尾部。

  boolean addAll(int index, Collection<? extends E> c)

  从指定的位置开始,将指定 collection 中的所有元素插入到此列表中。

  void clear()

  移除此列表中的所有元素。

  Object clone()

  返回此 ArrayList 实例的浅表副本。

  boolean contains(Object o)

  如果此列表中包含指定的元素,则返回 true。

  void ensureCapacity(int minCapacity)

  如有必要,增加此 ArrayList 实例的容量,以确保它至少能够容纳最小容量参数所指定的元素数。

  E get(int index)

  返回此列表中指定位置上的元素。

  int indexOf(Object o)

  返回此列表中首次出现的指定元素的索引,或如果此列表不包含元素,则返回 -1。

  boolean isEmpty()

  如果此列表中没有元素,则返回 true

  int lastIndexOf(Object o)

  返回此列表中最后一次出现的指定元素的索引,或如果此列表不包含索引,则返回 -1。

  E remove(int index)

  移除此列表中指定位置上的元素。

  boolean remove(Object o)

  移除此列表中首次出现的指定元素(如果存在)。

  protected void removeRange(int fromIndex, int toIndex)

  移除列表中索引在 fromIndex(包括)和 toIndex(不包括)之间的所有元素。

  E set(int index, E element)

  用指定的元素替代此列表中指定位置上的元素。

  int size()

  返回此列表中的元素数。

  Object[] toArray()

  按适当顺序(从第一个到最后一个元素)返回包含此列表中所有元素的数组。

  <T> T[] toArray(T[] a)

  按适当顺序(从第一个到最后一个元素)返回包含此列表中所有元素的数组;返回数组的运行时类型是指定数组的运行时类型。

  void trimToSize()

  将此 ArrayList 实例的容量调整为列表的当前大小。

  2.js实现部分功能

  

复制代码 代码如下:

  <html>

  <script type="text/javascript" src="json.js"></script>

  <head>

  <script type="text/javascript">

  function ArrayList(){

  this.arr=[],

  this.size=function(){

  return this.arr.length;

  },

  this.add=function(){

  if(arguments.length==1){

  this.arr.push(arguments[0]);

  }else if(arguments.length>=2){

  var deleteItem=this.arr[arguments[0]];

  this.arr.splice(arguments[0],1,arguments[1],deleteItem)

  }

  return this;

  },

  this.get=function(index){

  return this.arr[index];

  },

  this.removeIndex=function(index){

  this.arr.splice(index,1);

  },

  this.removeObj=function(obj){

  this.removeIndex(this.indexOf(obj));

  },

  this.indexOf=function(obj){

  for(var i=0;i<this.arr.length;i++){

  if (this.arr[i]===obj) {

  return i;

  };

  }

  return -1;

  },

  this.isEmpty=function(){

  return this.arr.length==0;

  },

  this.clear=function(){

  this.arr=[];

  },

  this.contains=function(obj){

  return this.indexOf(obj)!=-1;

  }

  };

  //新建一个List

  var list=new ArrayList();

  //增加一个元素

  list.add("0").add("1").add("2").add("3");

  //增加指定位置

  list.add(2,"22222222222");

  //删除指定元素

  list.removeObj("3");

  //删除指定位置元素

  list.removeIndex(0);

  for(var i=0;i<list.size();i++){

  document.writeln(list.get(i));

  }

  document.writeln(list.contains("2"))

  </script>

  </head>

  <body>

  </body>

  </html>