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




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
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值