Sub Process_Globals
Private fx As JFX
Private MainForm As Form
Dim MainMap As TreeMap
Dim DescendingMainMap As TreeMap
Dim SubMap As TreeMap
Dim HeadMap As TreeMap
Dim TailMap As TreeMap
End Sub
Sub AppStart (Form1 As Form, Args() As String)
MainForm = Form1
'MainForm.RootPane.LoadLayout("Layout1") 'Load the layout file.
MainForm.Show
'Create Main Map
MainMap.Initialize("")
MainMap.Put("D","D")
MainMap.Put("A","A")
MainMap.Put("C","C")
MainMap.Put("E","E")
MainMap.Put("G","G")
MainMap.Put("B","B")
MainMap.Put("F","F")
Log("Keys In Ascending Order")
MapToLog(MainMap)
'Get Map in Descinging Key Order.
DescendingMainMap = MainMap.ComparatorMap("DescendingOrder")
Log("Keys In Descending Order")
MapToLog(DescendingMainMap)
'get Map with keys B To F inclusive
SubMap = MainMap.SubMap("B","F",True)
Log("Keys Between B And F Inclsuive")
MapToLog(SubMap)
'get Map with keys <= F
HeadMap = MainMap.HeadMap("F",True)
Log("Keys <= F")
MapToLog(HeadMap)
'get Map with keys >= G
TailMap = MainMap.TailMap("F",True)
Log("Keys >= F")
MapToLog(TailMap)
Dim s As String = MainMap.LowerKey("F")
Log("First Key Lower Than F: " & s)
s = MainMap.FloorKey("C")
Log("First Key Lower Than or Equal To C: " & s)
s = MainMap.HigherKey("F")
Log("First Key Higher Than F: " & s)
s = MainMap.CeilingKey(" ")
Log("First Key Higher Than Space: " & s)
s = MainMap.FirstKey
Log("First Key In Map: " & s)
s = MainMap.LastKey
Log("Last Key In Map: " & s)
Log("Map Contains G: " & MainMap.ContainsKey("G"))
Log("Map Contains Z: " & MainMap.ContainsKey("Z"))
Log("Key At Position 3 Should Be D: " & MainMap.GetKeyAt(3))
Log("Value At Position 2 Should Be C: " & MainMap.GetValueAt(2))
MainMap.Remove("C")
Log("Key C removed:")
MapToLog(MainMap)
'Initalize2 method as suggested by Erel. Creates a TreeMap from a B4J Map
Log("Initalize from B4J Map")
MapFromCreateMap.Initialize2(CreateMap("A": "A","B": "B","C": "C","D": "D","E": "E","F": "F","G": "G"),"")
MapToLog(MapFromCreateMap)
End Sub
Sub MapToLog(TM As TreeMap)
For Each k As String In TM.Keys
Log(k)
Next
End Sub
'Descending order comparator sub.
'Rules for comapartor are
' If Obj1 is less than Obj2: Return a negative Int.
' If Oj1 is greater than Obj2: Return a positive Int.
' If Obj1 is equal Obj2: Return 0.
'cheat because I just want descending order...
Sub DescendingOrder(S1 As String,S2 As String)
Dim i As Int = S1.CompareTo(S2) * -1
Return i
End Sub