0
点赞
收藏
分享

微信扫一扫

[AHK]数据结构--简单Collection类

西特张 2023-04-24 阅读 53


numbers := new Collection()

numbers.Add(4)
numbers.Add(5)
numbers.Add(9)
numbers.Add(-4)
numbers.AddRange(GenerateRandomNums(10))
numbers.Sort("N") ; Numerisch Sortieren

for each, num in numbers
   str .= num "`n"

MsgBox % str
return

; gibt ein paar random nummern zurück
GenerateRandomNums(count){
   global
   randoms := new Collection()
   Loop, % count
   {
      Random, rnd, 0, 99
      randoms.Add(rnd)
   }
   return randoms
}



/*
   Simple Collection Klasse
*/
class Collection
{
   ; Methoden Implementation
   /*
      Fügt ein Element der Collection hinzu
   */
   Add(obj){
      this.Insert(obj)
   }
   
   /*
      Fügt eine Auflistung dieser Collection hinzu
   */
   AddRange(objs){
      if(IsObject(objs)){
         for each, item in objs
            this.Insert(item)
      } else
         throw(A_ThisFunc " ArgumentException: Must submit Object!")
   }
   
   Clear(){
      this.Remove(this.MinIndex(), this.MaxIndex())   
   }
   
   RemoveItem(item){
      for k, e in this
         if(e = item)
            this.Remove(k)
   }
   
   /*
   Gibt die anzahl Elemente in dieser Collection zurück
   */
   Count(){
      i := 0
      for e in this ; z?hlt alle Elemente
         i++
      return i
   }
   
   /*
      Sortiert die Liste
   */
   Sort(comparer=""){
      if(IsFunc(comparer))
         comparer := "F " comparer
      
      for each, num in this
         nums .= num "`n"
      Sort, nums, % comparer
      this.Clear()
      Loop, parse, nums, `,
         this.Add(A_LoopField)
   }

   /*
      Konstruktor - erstellt eine neue, leere Collection
   */
   __New(){
      
   }
}

; fehler meldung
throw(msg){
   ListLines
   MsgBox,16, Exception, % msg
}

举报

相关推荐

0 条评论