Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package Praktikum8;
- import java.util.*;
- import java.util.Random;
- import static jsTools.Input.*;
- // zur Zeitmessung der benoetigten Rechenzeit benoetigt:
- import java.lang.management.ManagementFactory;
- import java.lang.management.ThreadMXBean;
- class Person {
- String name;
- String vorname;
- Person(String vn, String nn) {
- name = nn;
- vorname = vn;
- }
- public String toString() {
- return ">" + vorname + ", " + name + "<\n";
- }
- }
- public class CollTest {
- // Variable, Methoden fuer die Zeitmessung
- private static ThreadMXBean tb = ManagementFactory.getThreadMXBean();
- private static long starttime, timeused;
- private static void startClock() {
- starttime = tb.getCurrentThreadCpuTime();
- }
- private static void stopClock(String txt) {
- timeused = tb.getCurrentThreadCpuTime() - starttime;
- System.out.println(txt + ": " + (float) timeused);
- }
- // Ende der Zeitmessungselemente
- // diese insertMethode zeigt die Anzahl der Elemente vor und
- // nach dem Einfuegen an. Daraus kann man ableiten, ob tatsaechlich eingefuegt
- // wurde
- public static void insert(String s, Collection<String> c) {
- System.out.print("Inserting:" + s + " size=" + c.size());
- c.add(s);
- System.out.println(" - inserted size=" + c.size());
- }
- public static void main(String[] args) {
- // ArrayList, LinkedList, Vector, Stack und HashSet
- startClock();
- System.out.println("ArrayList");
- List<Person> personen = Arrays.asList(new Person("Steve", "Vai"), new Person("Steve", "Vai"),
- new Person("Hans", "Schneider"), new Person("Jorje", "Gonzales"), new Person("Jane", "Michaels"),
- new Person("Jo", "Berlin"));
- stopClock("Dauer...");
- for (Person p : personen)
- System.out.println(p);
- System.out.println("−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−");
- startClock();
- System.out.println("LinkedList");
- LinkedList<String> list = new LinkedList<String>();
- list.add("Anja");
- list.add("Karl");
- list.add("Katharina");
- list.add("Anja");
- stopClock("Dauer...");
- for (String p : list)
- System.out.println(p);
- System.out.println("−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−");
- startClock();
- System.out.println("Vector");
- Vector<Person> vec = new Vector<Person>();
- vec.add(new Person("Geier", "Walli"));
- vec.add(new Person("Geier", "Walli"));
- vec.add(new Person("Max", "Mayr"));
- vec.add(new Person("Hans", "Busch"));
- vec.add(2, new Person("Mustermann", "Max"));
- stopClock("Dauer...");
- for (Person p : vec)
- System.out.println(p);
- System.out.println("−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−");
- startClock();
- System.out.println("Stack");
- Collection<String> col = new Stack<String>();
- insert("Bla", col);
- insert("Bla", col);
- insert("blabla", col);
- stopClock("Dauer...");
- System.out.println("−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−");
- startClock();
- System.out.println("HashSet");
- HashSet<String> set = new HashSet<String>();
- set.add("Anja");
- set.add("Karl");
- set.add("Katharina");
- set.add("Anja");
- Iterator it = set.iterator();
- while (it.hasNext())
- System.out.println(it.next());
- for (String name : set)
- System.out.println(name);
- stopClock("Dauer...");
- System.out.println("");
- System.out.println("============================================");
- System.out.println("=========== UND JETZT DIE MAPS =============");
- System.out.println("============================================");
- System.out.println("");
- startClock();
- System.out.println("HashMap");
- AbstractMap<Integer, Person> studKartei = new HashMap<Integer, Person>();
- System.out.println("Map vom Typ: " + studKartei.getClass().getName());
- studKartei.put(1, new Person("Mueller", "Hans"));
- studKartei.put(1, new Person("Mueller", "Hans"));
- studKartei.put(2, new Person("Mueller", "Hans"));
- studKartei.put(3, new Person("Mayer", "Hans"));
- studKartei.put(4, new Person("Huber", "Hans"));
- studKartei.put(2, new Person("Der", "Anet")); // Bayerisch: "der auch nicht"
- System.out.println(studKartei);
- stopClock("Dauer...");
- System.out.println("−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−");
- startClock();
- System.out.println("TreeMap");
- TreeMap<String, Person> map = new TreeMap<String, Person>();
- Person st1 = new Person("Brang","Rainer");
- Person st2 = new Person("Anja","Maier");
- Person st3 = new Person("Katharina","Schwarz");
- Person st4 = new Person("Brang","Rainer");
- map.put(new String(st1.name),st1);
- map.put(new String(st2.name),st2);
- map.put(new String(st3.name),st3);
- map.put(new String(st4.name),st4);
- stopClock("Dauer...");
- for (Person p : map.values())
- System.out.println(p);
- int h=readInteger("Matnummer:");
- // Performancetest:
- // insert:
- int anz = 100000;
- // CPU-Zeit aufnehmen:
- startClock();
- for (long i = 0; i < anz; i++) {
- int h1 = (int) (Math.random() * 1000000);
- studKartei.put(h1, new Person("Pers", "X" + h));
- }
- // benoetigte Zeit aufnehmen / berechnen
- stopClock("Einfuegezeit");
- // und jetzt viele Ausleseversuche, damit die Zeit statistisch
- // aussagekraeftig ist
- // das Ergebnis der Suchabfrage get wird nicht ausgewertet.
- startClock();
- for (long i = 0; i < anz * 10; i++) {
- int h2 = (int) (Math.random() * 1000000);
- studKartei.get(h2);
- }
- stopClock("Zeit zum Lesen");
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement