javascript函数库:ArrayList.js[1]

[入库:2005年8月18日] [更新:2007年3月25日]

本文简介:选择自 treeroot 的 blog

/**
use as arraylist for java programmer
*/
function testarraylist(){
 
 alert("arraylist test begin:");
 try{
  var list=new arraylist();
  assert(list.isempty());
  assert(list.size()==0);

  list.add(new integer(100));
  list.add(new integer(200));
  list.add(new integer(33));

  assert(!list.isempty());
  assert(list.size()==3);
 
  var list2=new arraylist();
  list2.add(new integer(32));
  list2.addall(list);
  assert(list2.size()==4);
  list2.add(new integer(200));
  
  
  
  assert(list2.indexof(new integer(200))==2);
  assert(list2.lastindexof(new integer(200))==4);
  
  
  assert(list2.contains(new integer(200)));
  
  list2.removeall(list);
  assert(list2.size()==2);
  assert(list2.contains(new integer(200)));
  
  assert(list2.get(0).equals(new integer(32)));
  
  list2.addall(list);
  list2.retainall(list);
  assert(list2.size()==4);
  assert(list2.get(0).intvalue()==200);
  assert(list2.get(1).intvalue()==100);
  assert(list2.get(2).intvalue()==200);
  assert(list2.get(3).intvalue()==33);

  assert(!list.equals(list2));
  list2.remove(0);
  assert(list.equals(list2));
  list2.set(0,new integer(200));
  assert(!list.equals(list2));
  list2.set(1,new integer(100));
  assert(list.equals(list2));

  assert(list.containsall(list2));
  list2.clear();
  assert(list2.isempty());
  assert(list2.size()==0);
  assert(list.containsall(list2));
  
  assert(!list2.iterator().hasnext());
  var it=list.iterator();
  assert(it.hasnext());
  it.next();
  assert(it.hasnext());
  it.next();
  assert(it.hasnext());
  it.next();
  assert(!it.hasnext());

 }
 catch(e){
  alert(e);
 }
   
 alert("arraylist test end");
}

function arraylist(){
 private:
 this.buffer=new array();
 var args=arraylist.arguments;
 if(args.length>0) this.buffer=args[0];
 this.length=this.buffer.length;


 function listiterator(table,len){

        this.table=table;
  this.len=len;                         
        this.index=0;
  
  this.hasnext=hasnext;
  function hasnext() {
   return this.index< this.len;
        }

        this.next=next;
  function next() {
   if(!this.hasnext())
    throw "no such element!";
      return this.table[this.index++];
        }
    }
 
 public:
 this.hashcode=hashcode;
 function hashcode(){
  var h=0;
  for(var i=0;i<this.lengh;i++)
   h+=this.buffer[i].hashcode();
  return h;
 }
 
 this.size=size;
 function size(){
  return this.length;
 }

 
 this.clear=clear;
 function clear(){
  this.length=0;
 }

 
 this.isempty=isempty;
 function isempty(){
  return this.length==0;
 }
 
 
 this.toarray=toarray;
 function toarray(){
  var copy=new array();
  for(var i=0;i<this.length;i++){
   copy[i]=this.buffer[i];
  }
  return copy;
 }

 this.get=get;
 function get(index){
  if(index>=0 && index<this.length)
   return this.buffer[index];
  return null;
 }

本文关键:javascript函数库:ArrayList.js
 

本站最佳浏览方式为 分辨率 1024x768 IE 6.0(或更高版本的 IE浏览器)

go top