Advertisement
Guest User

Praktikum 8

a guest
May 27th, 2019
106
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.76 KB | None | 0 0
  1. package Praktikum8;
  2.  
  3. import java.util.*;
  4. import java.util.Random;
  5. import static jsTools.Input.*;
  6.  
  7. // zur Zeitmessung der benoetigten Rechenzeit benoetigt:
  8. import java.lang.management.ManagementFactory;
  9. import java.lang.management.ThreadMXBean;
  10.  
  11. class Person {
  12. String name;
  13. String vorname;
  14.  
  15. Person(String vn, String nn) {
  16. name = nn;
  17. vorname = vn;
  18. }
  19.  
  20. public String toString() {
  21. return ">" + vorname + ", " + name + "<\n";
  22. }
  23. }
  24.  
  25. public class CollTest {
  26. // Variable, Methoden fuer die Zeitmessung
  27. private static ThreadMXBean tb = ManagementFactory.getThreadMXBean();
  28. private static long starttime, timeused;
  29.  
  30. private static void startClock() {
  31. starttime = tb.getCurrentThreadCpuTime();
  32. }
  33.  
  34. private static void stopClock(String txt) {
  35. timeused = tb.getCurrentThreadCpuTime() - starttime;
  36. System.out.println(txt + ": " + (float) timeused);
  37. }
  38.  
  39. // Ende der Zeitmessungselemente
  40.  
  41. // diese insertMethode zeigt die Anzahl der Elemente vor und
  42. // nach dem Einfuegen an. Daraus kann man ableiten, ob tatsaechlich eingefuegt
  43. // wurde
  44. public static void insert(String s, Collection<String> c) {
  45. System.out.print("Inserting:" + s + " size=" + c.size());
  46. c.add(s);
  47. System.out.println(" - inserted size=" + c.size());
  48. }
  49.  
  50. public static void main(String[] args) {
  51. // ArrayList, LinkedList, Vector, Stack und HashSet
  52. startClock();
  53. System.out.println("ArrayList");
  54. List<Person> personen = Arrays.asList(new Person("Steve", "Vai"), new Person("Steve", "Vai"),
  55. new Person("Hans", "Schneider"), new Person("Jorje", "Gonzales"), new Person("Jane", "Michaels"),
  56. new Person("Jo", "Berlin"));
  57. stopClock("Dauer...");
  58. for (Person p : personen)
  59. System.out.println(p);
  60. System.out.println("−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−");
  61.  
  62. startClock();
  63. System.out.println("LinkedList");
  64. LinkedList<String> list = new LinkedList<String>();
  65. list.add("Anja");
  66. list.add("Karl");
  67. list.add("Katharina");
  68. list.add("Anja");
  69. stopClock("Dauer...");
  70. for (String p : list)
  71. System.out.println(p);
  72. System.out.println("−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−");
  73.  
  74. startClock();
  75. System.out.println("Vector");
  76. Vector<Person> vec = new Vector<Person>();
  77. vec.add(new Person("Geier", "Walli"));
  78. vec.add(new Person("Geier", "Walli"));
  79. vec.add(new Person("Max", "Mayr"));
  80. vec.add(new Person("Hans", "Busch"));
  81. vec.add(2, new Person("Mustermann", "Max"));
  82. stopClock("Dauer...");
  83. for (Person p : vec)
  84. System.out.println(p);
  85. System.out.println("−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−");
  86.  
  87. startClock();
  88. System.out.println("Stack");
  89. Collection<String> col = new Stack<String>();
  90. insert("Bla", col);
  91. insert("Bla", col);
  92. insert("blabla", col);
  93. stopClock("Dauer...");
  94. System.out.println("−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−");
  95.  
  96. startClock();
  97. System.out.println("HashSet");
  98. HashSet<String> set = new HashSet<String>();
  99. set.add("Anja");
  100. set.add("Karl");
  101. set.add("Katharina");
  102. set.add("Anja");
  103. Iterator it = set.iterator();
  104. while (it.hasNext())
  105. System.out.println(it.next());
  106. for (String name : set)
  107. System.out.println(name);
  108. stopClock("Dauer...");
  109.  
  110. System.out.println("");
  111. System.out.println("============================================");
  112. System.out.println("=========== UND JETZT DIE MAPS =============");
  113. System.out.println("============================================");
  114. System.out.println("");
  115.  
  116. startClock();
  117. System.out.println("HashMap");
  118. AbstractMap<Integer, Person> studKartei = new HashMap<Integer, Person>();
  119. System.out.println("Map vom Typ: " + studKartei.getClass().getName());
  120.  
  121. studKartei.put(1, new Person("Mueller", "Hans"));
  122. studKartei.put(1, new Person("Mueller", "Hans"));
  123. studKartei.put(2, new Person("Mueller", "Hans"));
  124. studKartei.put(3, new Person("Mayer", "Hans"));
  125. studKartei.put(4, new Person("Huber", "Hans"));
  126. studKartei.put(2, new Person("Der", "Anet")); // Bayerisch: "der auch nicht"
  127. System.out.println(studKartei);
  128. stopClock("Dauer...");
  129. System.out.println("−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−");
  130.  
  131. startClock();
  132. System.out.println("TreeMap");
  133. TreeMap<String, Person> map = new TreeMap<String, Person>();
  134. Person st1 = new Person("Brang","Rainer");
  135. Person st2 = new Person("Anja","Maier");
  136. Person st3 = new Person("Katharina","Schwarz");
  137. Person st4 = new Person("Brang","Rainer");
  138. map.put(new String(st1.name),st1);
  139. map.put(new String(st2.name),st2);
  140. map.put(new String(st3.name),st3);
  141. map.put(new String(st4.name),st4);
  142. stopClock("Dauer...");
  143. for (Person p : map.values())
  144. System.out.println(p);
  145.  
  146. int h=readInteger("Matnummer:");
  147. // Performancetest:
  148. // insert:
  149. int anz = 100000;
  150.  
  151. // CPU-Zeit aufnehmen:
  152. startClock();
  153.  
  154. for (long i = 0; i < anz; i++) {
  155. int h1 = (int) (Math.random() * 1000000);
  156. studKartei.put(h1, new Person("Pers", "X" + h));
  157. }
  158. // benoetigte Zeit aufnehmen / berechnen
  159. stopClock("Einfuegezeit");
  160.  
  161. // und jetzt viele Ausleseversuche, damit die Zeit statistisch
  162. // aussagekraeftig ist
  163. // das Ergebnis der Suchabfrage get wird nicht ausgewertet.
  164. startClock();
  165.  
  166. for (long i = 0; i < anz * 10; i++) {
  167. int h2 = (int) (Math.random() * 1000000);
  168. studKartei.get(h2);
  169. }
  170. stopClock("Zeit zum Lesen");
  171. }
  172. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement