Advertisement
Guest User

Untitled

a guest
Aug 18th, 2017
54
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.54 KB | None | 0 0
  1.  
  2. //in einem "Array" werden die Grenzen überprüft und es gibt noch div. Hilfsfunktionen
  3. class<Datatype> Array
  4. private var array:datatype[]
  5. private var dynamic = false
  6.  
  7. //size = größe
  8. //dynamic = soll es dynamisch wachsen?
  9. public function new()
  10. this.array = new Datatype[2]
  11. this.dynamic = true
  12. end
  13.  
  14. public function new(size)
  15. if size < 1
  16. throw new invalidrangeexception(size,0)
  17. end
  18. this.array = new datatype[size]
  19. this.dynamic = false
  20. end
  21.  
  22. //gibt die länge zurück
  23. public property length
  24. get
  25. return this.array.length
  26. end
  27. end
  28.  
  29. //sortiert das array
  30. public function sort()
  31. //todo
  32. end
  33.  
  34.  
  35. //optimize
  36. public function optimize()
  37. //wenn es bis zum 1/3 des arrays keine elemente mehr gibt, wird das array halbiert
  38. loop var i = array.length - 1 to array.length/3
  39. if array[i]
  40. return
  41. end
  42. end
  43. //halbieren \o/
  44. array = array[..array.length/2]
  45. end
  46.  
  47. //iterator
  48. public function iterator()
  49. return array.iterator
  50. end
  51.  
  52. public property[pos:int] this:int
  53. get
  54. if (pos > -1) and (pos < array.length)
  55. return array[pos]
  56. if expr
  57.  
  58. end
  59. else
  60.  
  61. end
  62. end
  63. else
  64. throw new IndexOutOfBoundsException(array.length, pos)
  65. end
  66. end
  67. set
  68. if dynamic
  69. loop pos > (array.length - 1)
  70. array = array[.. array.length * 2]
  71. end
  72. end
  73.  
  74. if (pos > -1) and (pos < array.length)
  75. array[pos] = value
  76.  
  77. return
  78. end
  79.  
  80.  
  81. throw new IndexOutOfBoundsException(array.length, pos)
  82. end
  83. end
  84. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement