1 module ArrayListDemo; 2 3 import common; 4 5 import hunt.collection.AbstractList; 6 import hunt.collection.ArrayList; 7 import hunt.collection.Collections; 8 import hunt.collection.List; 9 10 import std.stdio; 11 import std.conv; 12 import std.range; 13 14 // http://www.java2novice.com/java-collections-and-util/arraylist/ 15 class ArrayListDemo 16 { 17 void testBasicOperations() 18 { 19 ArrayList!(string) al = new ArrayList!(string)(); 20 //add elements to the ArrayList 21 al.add("JAVA"); 22 al.add("C++"); 23 al.add("PERL"); 24 al.add("PHP"); 25 writeln(al); 26 assert(al.size() == 4); 27 writeln("\nIterating..."); 28 foreach (string v; al) 29 { 30 writeln(v); 31 } 32 33 //get elements by index 34 writeln("\nIndexing..."); 35 writeln("Element at index 0: " ~ al[0]); 36 writeln("Element at index 1: " ~ al.get(1)); 37 writeln("Does list contains JAVA? " ~ al.contains("JAVA").to!string()); 38 39 //add elements at a specific index 40 writeln("\nAdding..."); 41 al.add(2, "PLAY"); 42 43 assert(al.size() == 5); 44 assert(al[2] == "PLAY"); 45 46 writeln(al); 47 writeln("Is arraylist empty? " ~ al.isEmpty().to!string()); 48 writeln("Index of PERL is " ~ al.indexOf("PERL").to!string()); 49 writeln("Size of the arraylist is: " ~ al.size().to!string()); 50 51 writeln("\nRemoving..."); 52 al.removeAt(2); 53 assert(al.size() == 4); 54 assert(al[2] != "PLAY"); 55 writeln(al); 56 57 writeln("\nClearing..."); 58 al.clear(); 59 writeln("After clear ArrayList:" ~ al.toString()); 60 assert(al.size() == 0); 61 62 } 63 64 void testAddListElements() 65 { 66 ArrayList!(string) arrl = new ArrayList!(string)(); 67 //adding elements to the end 68 arrl.add("First"); 69 arrl.add("Second"); 70 arrl.add("Third"); 71 arrl.add("Random"); 72 writeln("Actual ArrayList:" ~ arrl.toString()); 73 List!(string) list = new ArrayList!(string)(); 74 list.add("one"); 75 list.add("two"); 76 arrl.addAll(list); 77 writeln("After Copy: " ~ arrl.toString()); 78 } 79 80 void testContains() 81 { 82 ArrayList!(string) arrl = new ArrayList!(string)(); 83 //adding elements to the end 84 arrl.add("First"); 85 arrl.add("Second"); 86 arrl.add("Third"); 87 arrl.add("Random"); 88 writeln("Actual ArrayList:" ~ arrl.toString()); 89 90 List!(string) list = new ArrayList!(string)(); 91 list.add("Second"); 92 list.add("Random"); 93 writeln("Does ArrayList contains all list elements?: " ~ arrl.containsAll(list) 94 .to!string()); 95 list.add("one"); 96 writeln("Does ArrayList contains all list elements?: " ~ arrl.containsAll(list) 97 .to!string()); 98 } 99 100 // void testSubList() 101 // { 102 // ArrayList!(string) arrl = new ArrayList!(string)(); 103 // //adding elements to the end 104 // arrl.add("First"); 105 // arrl.add("Second"); 106 // arrl.add("Third"); 107 // arrl.add("Random"); 108 // arrl.add("Click"); 109 // writeln("Actual ArrayList:" ~ arrl.toString()); 110 // List!(string) list = arrl.subList(2, 4); 111 // writeln("Sub List: " ~ list.toString()); 112 // } 113 114 // void testReverse() 115 // { 116 // ArrayList!(string) list = new ArrayList!(string)(); 117 // list.add("Java"); 118 // list.add("Cric"); 119 // list.add("Play"); 120 // list.add("Watch"); 121 // list.add("Glass"); 122 // Collections.reverse(list); 123 // writeln("Results after reverse operation:"); 124 // foreach(string str; list){ 125 // writeln(str); 126 // } 127 // } 128 129 // void testShuffle() 130 // { 131 // ArrayList!(string) list = new ArrayList!(string)(); 132 // list.add("Java"); 133 // list.add("Cric"); 134 // list.add("Play"); 135 // list.add("Watch"); 136 // list.add("Glass"); 137 // list.add("Movie"); 138 // list.add("Girl"); 139 140 // Collections.shuffle(list); 141 // writeln("Results after shuffle operation:"); 142 // foreach(string str; list){ 143 // writeln(str); 144 // } 145 146 // Collections.shuffle(list); 147 // writeln("Results after shuffle operation:"); 148 // foreach(string str; list){ 149 // writeln(str); 150 // } 151 // } 152 153 // void testSwap() 154 // { 155 // ArrayList!(string) list = new ArrayList!(string)(); 156 // list.add("Java"); 157 // list.add("Cric"); 158 // list.add("Play"); 159 // list.add("Watch"); 160 // list.add("Glass"); 161 // list.add("Movie"); 162 // list.add("Girl"); 163 164 // Collections.swap(list, 2, 5); 165 // writeln("Results after swap operation:"); 166 // foreach(string str; list){ 167 // writeln(str); 168 // } 169 // } 170 171 }