ソースを参照

Added ToArray() for list types.
More examples.

woollybah 6 年 前
コミット
d00916f5ef

+ 8 - 0
collections.mod/collections.bmx

@@ -5,6 +5,14 @@ bbdoc: Generic Collections.
 End Rem
 Module BRL.Collections
 
+ModuleInfo "Version: 1.00"
+ModuleInfo "Author: Bruce A Henderson"
+ModuleInfo "License: zlib/libpng"
+ModuleInfo "Copyright: 2019 Bruce A Henderson"
+
+ModuleInfo "History: 1.00"
+ModuleInfo "History: Initial Release"
+
 Import "map.bmx"
 Import "list.bmx"
 Import "queue.bmx"

+ 20 - 0
collections.mod/doc/tarraylist_add.bmx

@@ -0,0 +1,20 @@
+SuperStrict
+
+Framework brl.collections
+Import brl.standardio
+
+Local cities:TArrayList<String> = New TArrayList<String>
+
+cities.Add("Shanghai")
+cities.Add("Beijing")
+cities.Add("Guangzhou")
+cities.Add("Shenzhen")
+cities.Add("Tianjin")
+cities.Add("Wuhan")
+
+Print "Count : " + cities.Count()
+Print
+
+For Local city:String = EachIn cities
+	Print city
+Next

+ 25 - 0
collections.mod/doc/tarraylist_clear.bmx

@@ -0,0 +1,25 @@
+SuperStrict
+
+Framework brl.collections
+Import brl.standardio
+
+Local cities:TArrayList<String> = New TArrayList<String>
+
+cities.Add("Shanghai")
+cities.Add("Beijing")
+cities.Add("Guangzhou")
+cities.Add("Shenzhen")
+cities.Add("Tianjin")
+cities.Add("Wuhan")
+
+Print "Cities (" + cities.Count() + ") :"
+For Local city:String = EachIn cities
+	Print city
+Next
+
+cities.Clear()
+
+Print "~nCities (" + cities.Count() + ") :"
+For Local city:String = EachIn cities
+	Print city
+Next

+ 16 - 0
collections.mod/doc/tarraylist_contains.bmx

@@ -0,0 +1,16 @@
+SuperStrict
+
+Framework brl.collections
+Import brl.standardio
+
+Local data:Int[] = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
+
+Local list:TArrayList<Int> = New TArrayList<Int>(data)
+
+For Local i:Int = EachIn list
+	Print i
+Next
+
+Print "~nContains(0) : " + list.Contains(0)
+Print "Contains(5) : " + list.Contains(5)
+Print "Contains(15) : " + list.Contains(15)

+ 26 - 0
collections.mod/doc/tarraylist_insert.bmx

@@ -0,0 +1,26 @@
+SuperStrict
+
+Framework brl.collections
+Import brl.standardio
+
+Local data:String[] = ["two", "three", "five", "six"]
+
+Local list:TArrayList<String> = New TArrayList<String>(data)
+
+Print "Count : " + list.Count()
+Print
+
+For Local num:String = EachIn list
+	Print num
+Next
+
+list.Insert(0, "one")
+list.Insert(3, "four")
+list.Insert(6, "seven")
+
+Print "~nCount : " + list.Count()
+Print
+
+For Local num:String = EachIn list
+	Print num
+Next

+ 21 - 0
collections.mod/doc/tarraylist_toarray.bmx

@@ -0,0 +1,21 @@
+SuperStrict
+
+Framework brl.collections
+Import brl.standardio
+
+Local cities:TArrayList<String> = New TArrayList<String>
+
+cities.Add("Shanghai")
+cities.Add("Beijing")
+cities.Add("Guangzhou")
+cities.Add("Shenzhen")
+cities.Add("Tianjin")
+cities.Add("Wuhan")
+
+Local array:String[] = cities.ToArray()
+
+Print array.length
+
+For Local city:String = EachIn array
+	Print city
+Next

+ 14 - 0
collections.mod/linkedlist.bmx

@@ -351,6 +351,20 @@ Public
 		head = result
 		FixHead()
 	End Method
+	
+	Rem
+	bbdoc: Converts a #TLinkedList to an array.
+	returns: An array of elements.
+	End Rem
+	Method ToArray:T[]()
+		Local arr:T[size]
+		Local i:Int
+		For Local elem:T = EachIn Self
+			arr[i] = elem
+			i :+ 1
+		Next
+		Return arr
+	End Method
 
 Private
 	Method ValidateNode(node:TLinkedListNode<T>)

+ 13 - 1
collections.mod/list.bmx

@@ -278,7 +278,7 @@ Public
 	bbdoc: Sorts the elements in the entire #TArrayList using the specified comparator, or the default if #Null.
 	End Rem
 	Method Sort(comparator:IComparator<T> = Null)
-		' introsort
+		' nothing to sort
 		If size < 2 Then
 			Return
 		End If
@@ -299,6 +299,18 @@ Public
 		End If
 	End Method
 	
+	Rem
+	bbdoc: Converts a #TArrayList to an array.
+	returns: An array of elements.
+	End Rem
+	Method ToArray:T[]()
+		Local arr:T[size]
+			
+		ArrayCopy(data, 0, arr, 0, size)
+		
+		Return arr
+	End Method
+
 	Rem
 	bbdoc: Sets the capacity to the actual number of elements in the #TArrayList.
 	about: This method can be used to minimize a collection's memory overhead if no new elements will be added to the collection. 

+ 3 - 3
collections.mod/map.bmx

@@ -41,7 +41,7 @@ Type TTreeMap<K, V> Implements IMap<K,V>
 	End Method
 
 	Rem
-	bbdoc: 
+	bbdoc: Returns an iterator that iterates through the #TTreeMap.
 	End Rem
 	Method GetIterator:IIterator<TMapNode<K,V>>()
 		Return New TMapIterator<K,V>(FirstNode())
@@ -58,7 +58,7 @@ Type TTreeMap<K, V> Implements IMap<K,V>
 	End Method
 	
 	Rem
-	bbdoc: 
+	bbdoc: Returns the #TTreeMap keys as a collection.
 	End Rem
 	Method Keys:ICollection<K>()
 		Local list:TArrayList<K> = New TArrayList<K>(size)
@@ -71,7 +71,7 @@ Type TTreeMap<K, V> Implements IMap<K,V>
 	End Method
 
 	Rem
-	bbdoc: 
+	bbdoc: Returns the #TTreeMap values as a collection.
 	End Rem
 	Method Values:ICollection<V>()
 		Local list:TArrayList<V> = New TArrayList<V>(size)

+ 12 - 0
collections.mod/stack.bmx

@@ -138,6 +138,18 @@ Public
 		
 		size :+ 1
 	End Method
+
+	Rem
+	bbdoc: Converts a #TStack to an array.
+	returns: An array of elements.
+	End Rem
+	Method ToArray:T[]()
+		Local arr:T[size]
+			
+		ArrayCopy(data, 0, arr, 0, size)
+		
+		Return arr
+	End Method
 	
 	Rem
 	bbdoc: Can be used to minimize a collection's memory overhead if no new elements will be added to the collection.