public class TestTreeMapOfStringAndTreeSetOfInteger
1: //TestTreeMapOfStringAndTreeSetOfInteger.java
3: import java.util.TreeMap;
4: import java.util.TreeSet;
5: import java.util.Scanner;
7: public class TestTreeMapOfStringAndTreeSetOfInteger
8: {
9: public static void main(String[] args)
10: {
11: System.out.println("=====1=========================");
12: //Create empty String/TreeSet of Integer TreeMap, then
13: //display content and size.
14: TreeMap<String, TreeSet<Integer>> treeMap;
15: treeMap = new TreeMap<String, TreeSet<Integer>>();
16: System.out.println(treeMap);
17: System.out.println(treeMap.size());
18: pause(1);
20: System.out.println("=====2=========================");
21: //Create an empty TreeSet of Integer and display its content and size.
22: TreeSet<Integer> treeSetInt;
23: treeSetInt = new TreeSet<Integer>();
24: System.out.println(treeSetInt);
25: System.out.println(treeSetInt.size());
26: pause(2);
28: System.out.println("=====3=========================");
29: //Put two integers into the empty TreeSet and re-display.
30: treeSetInt.add(2);
31: treeSetInt.add(5);
32: System.out.println(treeSetInt);
33: System.out.println(treeSetInt.size());
34: pause(3);
36: System.out.println("=====4=========================");
37: //Put a key/value pair into the TreeMap and display.
38: treeMap.put("Hello", treeSetInt);
39: System.out.println(treeMap);
40: System.out.println(treeMap.size());
41: System.out.println(treeMap.get("Hello"));
42: System.out.println(treeMap.get("Hello").size());
43: pause(4);
45: System.out.println("=====5=========================");
46: //This code segment has no effect because the value set already
47: //contains the single value to be added.
48: if (treeMap.containsKey("Hello"))
49: {
50: treeMap.get("Hello").add(5);
51: }
52: else
53: {
54: treeSetInt = new TreeSet<Integer>();
55: treeSetInt.add(5);
56: treeMap.put("Hello", treeSetInt);
57: }
58: System.out.println(treeMap);
59: System.out.println(treeMap.size());
60: System.out.println(treeMap.get("Hello"));
61: System.out.println(treeMap.get("Hello").size());
62: pause(5);
64: System.out.println("=====6=========================");
65: //This code segment does take effect because the value set
66: //does not already contain the single value to be added.
67: if (treeMap.containsKey("Hello"))
68: {
69: treeMap.get("Hello").add(12);
70: }
71: else
72: {
73: treeSetInt = new TreeSet<Integer>();
74: treeSetInt.add(12);
75: treeMap.put("Hello", treeSetInt);
76: }
77: System.out.println(treeMap);
78: System.out.println(treeMap.size());
79: System.out.println(treeMap.get("Hello"));
80: System.out.println(treeMap.get("Hello").size());
81: pause(6);
83: System.out.println("=====7=========================");
84: //Add a new key/value pair to the HashMap and re-display.
85: if (treeMap.containsKey("Good-bye"))
86: {
87: treeMap.get("Good-bye").add(20);
88: }
89: else
90: {
91: treeSetInt = new TreeSet<Integer>();
92: treeSetInt.add(20);
93: treeMap.put("Good-bye", treeSetInt);
94: }
95: System.out.println(treeMap);
96: System.out.println(treeMap.size());
97: System.out.println(treeMap.get("Hello"));
98: System.out.println(treeMap.get("Hello").size());
99: System.out.println(treeMap.get("Good-bye"));
100: System.out.println(treeMap.get("Good-bye").size());
101: pause(7);
103: System.out.println("=====8=========================");
104: //
105: //Set<String> keys = treeMap.keySet();
107: //Pre Java 8 ...
108: //Display all keys, all values and all key/value pairs.
109: //Do it first the pre-Java 8 way ...
110: for (String s : treeMap.keySet())
111: {
112: System.out.print(s + " ");
113: }
114: System.out.println();
115: for (TreeSet<Integer> treeSet : treeMap.values())
116: {
117: System.out.print(treeSet + " ");
118: }
119: System.out.println();
120: for (String s : treeMap.keySet())
121: {
122: System.out.println(s + " " + treeMap.get(s));
123: }
124: pause(8);
126: System.out.println("=====9=========================");
127: //Display all keys, all values and all key/value pairs.
128: //Now do it the Java 8 way ...
129: treeMap.keySet().forEach(s -> System.out.print(s + " "));
130: System.out.println();
131: treeMap.values().forEach(i -> System.out.print(i + " "));
132: System.out.println();
133: treeMap.keySet().forEach
134: (
135: s -> System.out.println(s + " " + treeMap.get(s))
136: );
137: pause(9);
138: }
140: public static void pause(int pauseNumber)
141: {
142: Scanner keyboard = new Scanner(System.in);
143: System.out.println("Pause " + pauseNumber);
144: System.out.print("Press Enter to continue ... ");
145: keyboard.nextLine();
146: }
147: }
148: /* Output (without the pauses):
149: =====1=========================
150: {}
151: 0
152: =====2=========================
153: []
154: 0
155: =====3=========================
156: [2, 5]
157: 2
158: =====4=========================
159: {Hello=[2, 5]}
160: 1
161: [2, 5]
162: 2
163: =====5=========================
164: {Hello=[2, 5]}
165: 1
166: [2, 5]
167: 2
168: =====6=========================
169: {Hello=[2, 5, 12]}
170: 1
171: [2, 5, 12]
172: 3
173: =====7=========================
174: {Good-bye=[20], Hello=[2, 5, 12]}
175: 2
176: [2, 5, 12]
177: 3
178: [20]
179: 1
180: =====8=========================
181: Good-bye Hello
182: [20] [2, 5, 12]
183: Good-bye [20]
184: Hello [2, 5, 12]
185: =====9=========================
186: Good-bye Hello
187: [20] [2, 5, 12]
188: Good-bye [20]
189: Hello [2, 5, 12]
190: */