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