Skip to content

Commit b806365

Browse files
committed
Sample code
Sample code
1 parent 48f5eef commit b806365

File tree

1 file changed

+186
-0
lines changed

1 file changed

+186
-0
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,186 @@
1+
package javacollectionsframeworkexamples;
2+
3+
import java.util.ArrayList;
4+
import java.util.HashMap;
5+
import java.util.HashSet;
6+
import java.util.LinkedHashMap;
7+
import java.util.LinkedHashSet;
8+
import java.util.LinkedList;
9+
import java.util.List;
10+
import java.util.Map;
11+
import java.util.Set;
12+
import java.util.TreeMap;
13+
import java.util.TreeSet;
14+
15+
/**
16+
*
17+
* @author Laszlo Harri Nemeth
18+
*/
19+
public class JavaCollectionsFrameworkExamples {
20+
21+
/**
22+
* @param args the command line arguments
23+
*/
24+
public static void main(String[] args) {
25+
ArrayListVsLinkedList();
26+
HashMapLinkedHashMapTreeMapTest();
27+
SetsTest();
28+
}
29+
30+
private static final void ArrayListVsLinkedList() {
31+
List<Integer> arrayList = new ArrayList();
32+
List<Integer> linkedList = new LinkedList();
33+
System.out.println("-------------------------------------------");
34+
System.out.println("Comparison of LinkedList and ArrayList performance");
35+
System.out.println("-------------------------------------------");
36+
doTimings("ArrayList", arrayList);
37+
doTimings("LinkedList", linkedList);
38+
System.out.println("-------------------------------------------");
39+
}
40+
41+
private static void doTimings(String type, List<Integer> list) {
42+
for (int i = 0; i < 1E5; i++)
43+
list.add(i);
44+
45+
long start = System.currentTimeMillis();
46+
47+
// add items to the end of the list
48+
for (int i = 0; i < 1E5; i++)
49+
list.add(i);
50+
51+
long end = System.currentTimeMillis();
52+
53+
System.out.println("Time taken for adding items to the end: " + (end - start) + "ms for " + type);
54+
55+
/* --------------------------------------------------------------*/
56+
57+
list.clear();
58+
for (int i = 0; i < 1E5; i++)
59+
list.add(i);
60+
61+
start = System.currentTimeMillis();
62+
63+
// add items to the beginning of the list
64+
for (int i = 0; i < 1E5; i++)
65+
list.add(0, i);
66+
67+
end = System.currentTimeMillis();
68+
69+
System.out.println("Time taken for adding items to the beginning: " + (end - start) + "ms for " + type);
70+
71+
/* --------------------------------------------------------------*/
72+
73+
list.clear();
74+
for (int i = 0; i < 1E5; i++)
75+
list.add(i);
76+
77+
start = System.currentTimeMillis();
78+
79+
// add items to the beginning of the list
80+
for (int i = 0; i < 1E5; i++)
81+
list.add(list.size()-100, i);
82+
83+
end = System.currentTimeMillis();
84+
85+
System.out.println("Time taken for adding items near the end: " + (end - start) + "ms for " + type);
86+
87+
}
88+
89+
private static void HashMapLinkedHashMapTreeMapTest() {
90+
Map<Integer, String> hashMap = new HashMap<Integer, String>();
91+
Map<Integer, String> linkedHashMap = new LinkedHashMap<Integer, String>();
92+
Map<Integer, String> treeMap = new TreeMap<Integer, String>();
93+
94+
// order not guaranteed
95+
System.out.println("-------------------------------------------");
96+
System.out.println("HashMap: order not guaranteed");
97+
testMap(hashMap);
98+
System.out.println("-------------------------------------------");
99+
System.out.println("LinkedHashMap: insertion order");
100+
testMap(linkedHashMap);
101+
System.out.println("-------------------------------------------");
102+
System.out.println("TreeMap: natural order");
103+
testMap(treeMap);
104+
System.out.println("-------------------------------------------");
105+
}
106+
107+
private static void testMap(Map<Integer, String> map) {
108+
map.put(9, "Fox");
109+
map.put(4, "Cat");
110+
map.put(8, "Dog");
111+
map.put(1, "Giraffe");
112+
map.put(0, "Swan");
113+
map.put(15, "Bear");
114+
map.put(6, "Snake");
115+
116+
for (Integer key : map.keySet()) {
117+
System.out.println(key + ": " + map.get(key));
118+
}
119+
}
120+
121+
private static void SetsTest() {
122+
System.out.println("HashSet does not retain order");
123+
Set<String> set = new HashSet<String>();
124+
set.add("dog");
125+
set.add("cat");
126+
set.add("mouse");
127+
set.add("snake");
128+
set.add("bear");
129+
// add duplicate item doesn't add
130+
set.add("mouse");
131+
System.out.println(set);
132+
System.out.println("-------------------------------------------");
133+
134+
System.out.println("LinkedHashSet remembers the order of insertion");
135+
Set<String> linkedHashSet = new LinkedHashSet<String>();
136+
linkedHashSet.add("dog");
137+
linkedHashSet.add("cat");
138+
linkedHashSet.add("mouse");
139+
linkedHashSet.add("snake");
140+
linkedHashSet.add("bear");
141+
// add duplicate item doesn't add
142+
linkedHashSet.add("mouse");
143+
System.out.println(linkedHashSet);
144+
System.out.println("-------------------------------------------");
145+
146+
System.out.println("TreeSet sorts in natural order");
147+
Set<String> treeSet = new TreeSet<String>();
148+
treeSet.add("dog");
149+
treeSet.add("cat");
150+
treeSet.add("mouse");
151+
treeSet.add("snake");
152+
treeSet.add("bear");
153+
// add duplicate item doesn't add
154+
treeSet.add("mouse");
155+
System.out.println(treeSet);
156+
System.out.println("-------------------------------------------");
157+
158+
System.out.println("Intersection:");
159+
Set<String> treeSet2 = new TreeSet<String>();
160+
// some common elements and some new elements
161+
treeSet2.add("dog");
162+
treeSet2.add("cat");
163+
treeSet2.add("giraffe");
164+
treeSet2.add("monkey");
165+
treeSet2.add("ant");
166+
System.out.println("Set1: " + treeSet);
167+
System.out.println("Set2: " + treeSet2);
168+
// copy treeSet
169+
Set<String> intersectionHashSet = new HashSet<String>(treeSet);
170+
// keep only the elements which are treeSet2 - therefore this will be the intersection
171+
intersectionHashSet.retainAll(treeSet2);
172+
System.out.println("Intersection: " + intersectionHashSet);
173+
System.out.println("-------------------------------------------");
174+
175+
System.out.println("Difference:");
176+
System.out.println("Set1: " + treeSet);
177+
System.out.println("Set2: " + treeSet2);
178+
// copy treeSet
179+
Set<String> differenceHashSet = new HashSet<String>(treeSet);
180+
// remove all those elements which are in treeSet2. So the difference will be in differenceHashSet.
181+
differenceHashSet.removeAll(treeSet2);
182+
System.out.println("Difference (Set1 \\ Set2): " + differenceHashSet);
183+
System.out.println("-------------------------------------------");
184+
185+
}
186+
}

0 commit comments

Comments
 (0)