Source of TestTreeMapOfStringAndTreeSetOfInteger.java


  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: */