Changeset 6333 for lang/scala/sandbox

Show
Ignore:
Timestamp:
02/07/08 16:19:44 (5 years ago)
Author:
kmizu
Message:

add table method, which creating Array[Array[AnyRef?]]

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • lang/scala/sandbox/src/jp/gr/java_conf/mizu/util/MultiDimArray.scala

    r6316 r6333  
    55  type AnyRefs2D = Array[AnyRef] 
    66  type AnyRefs3D = Array[Array[AnyRef]] 
     7  object NL 
    78  def $[T](es :T*) :Array[T] = es.toArray 
    89  def %(es :Any*) :Array[AnyRef] = es.map(_.asInstanceOf[AnyRef]).toArray 
     
    6566    es.toArray 
    6667  } 
     68  def table(es: Any*) :Array2D[AnyRef] = { 
     69    import scala.collection.mutable.ArrayBuffer 
     70    val a = new ArrayBuffer[ArrayBuffer[AnyRef]] 
     71    var x = 0 
     72    var y = 0 
     73    a += new ArrayBuffer[AnyRef] 
     74    for(i <- 0 until es.length) { 
     75      if(es(i) == NL) { 
     76        y += 1 
     77        x = 0 
     78        if(i < es.length - 1) a += new ArrayBuffer[AnyRef] 
     79      }else { 
     80        a(x)(y) = es(i).asInstanceOf[AnyRef] 
     81        x += 1 
     82      } 
     83    } 
     84    a.map(_.toArray).toArray 
     85  } 
    6786}