Add 3 3 (ArrayList vs LinkedList)
This commit is contained in:
parent
97ae6d91b6
commit
f5319538ad
@ -10,6 +10,7 @@
|
||||
<br>Sowohl SourceCode, PDF als auch Word Datei
|
||||
- VL 2 Aufgabe 1 (Erstellen von Testdaten)
|
||||
- VL 2 Aufgabe 2 (StringTokenizer)
|
||||
- VL 3 Aufgabe 3 (ArrayList vs LinkedList)
|
||||
|
||||
|
||||
- keine
|
||||
|
@ -1,5 +1,8 @@
|
||||
package part3.aufg3;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.LinkedList;
|
||||
|
||||
/**
|
||||
* Aufgabe 3
|
||||
* Es soll die Einfügeperformance der beiden Klassen LinkedList und ArrayList verglichen
|
||||
@ -23,24 +26,76 @@ package part3.aufg3;
|
||||
|
||||
public class Anwendung {
|
||||
|
||||
private String getRandomString(){
|
||||
public static String getRandomString(int MIN_LENGTH, int MAX_LENGTH) {
|
||||
char[] alphabet = {'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z'};
|
||||
int size;
|
||||
|
||||
do{
|
||||
size = (int) Math.random()*16;
|
||||
}while (size<10);
|
||||
do {
|
||||
size = (int) (Math.random() * MAX_LENGTH);
|
||||
} while (size < MIN_LENGTH);
|
||||
|
||||
String output = "";
|
||||
int index;
|
||||
|
||||
for (int i=0; i<size; i++){
|
||||
index = (int) Math.random()*alphabet.length;
|
||||
for (int i = 0; i < size; i++) {
|
||||
index = (int) (Math.random() * alphabet.length);
|
||||
output += alphabet[index];
|
||||
}
|
||||
return output;
|
||||
}
|
||||
public static void main(String[] args){
|
||||
|
||||
public static void fillWithRandomStrings(LinkedList<String> ls, int amount) {
|
||||
for (int i = 0; i < amount; i++) {
|
||||
ls.add(getRandomString(10, 16));
|
||||
}
|
||||
}
|
||||
|
||||
public static void fillWithRandomStrings(ArrayList<String> ls, int amount){
|
||||
for (int i=0; i<amount; i++){
|
||||
ls.add(getRandomString(10,16));
|
||||
}
|
||||
}
|
||||
|
||||
public static void main(String[] args) {
|
||||
|
||||
int stringsToAdd = 50_000_000;
|
||||
long totalTimeSpent = 0;
|
||||
int measurements = 10;
|
||||
|
||||
for (int i = 0; i < measurements; i++) {
|
||||
|
||||
long timeStart = System.currentTimeMillis();
|
||||
|
||||
// LinkedList<String> ls = new LinkedList<>();
|
||||
ArrayList<String> ls = new ArrayList<>();
|
||||
|
||||
fillWithRandomStrings(ls, stringsToAdd);
|
||||
|
||||
long timeEnd = System.currentTimeMillis();
|
||||
long timeSpent = timeEnd-timeStart;
|
||||
totalTimeSpent += timeSpent;
|
||||
|
||||
System.out.println(timeSpent);
|
||||
}
|
||||
System.out.println("Average of " + measurements + ": " + (totalTimeSpent/measurements));
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
Linked List: ArrayLis:
|
||||
10k 10 single Time of 0 ??? 7
|
||||
20k 9 Here too ?? 11
|
||||
50k 24 22
|
||||
|
||||
100k 47 37
|
||||
200k 99 74
|
||||
500k 245 188
|
||||
|
||||
1Mil 737 350
|
||||
2Mil 1576 688
|
||||
5Mil 4173 1650
|
||||
|
||||
10Mil 8600 3300
|
||||
20Mil 17750 6690
|
||||
50Mil 43600 24860
|
||||
*/
|
Loading…
Reference in New Issue
Block a user