Skip to content

Commit 3de5883

Browse files
Merge pull request #1 from RostislavPorohnya/lab01
lab1: ArrayList, LinkedList
2 parents 16df471 + e183681 commit 3de5883

File tree

8 files changed

+155
-0
lines changed

8 files changed

+155
-0
lines changed

.gitignore

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
**/.idea/
2+
*.iml
3+
/shelf/
4+
/workspace.xml

lab01/.idea/misc.xml

Lines changed: 6 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

lab01/.idea/modules.xml

Lines changed: 8 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

lab01/.idea/vcs.xml

Lines changed: 6 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

lab01/lab01.iml

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<module type="JAVA_MODULE" version="4">
3+
<component name="NewModuleRootManager" inherit-compiler-output="true">
4+
<exclude-output />
5+
<content url="file://$MODULE_DIR$">
6+
<sourceFolder url="file://$MODULE_DIR$/src" isTestSource="false" />
7+
</content>
8+
<orderEntry type="inheritedJdk" />
9+
<orderEntry type="sourceFolder" forTests="false" />
10+
</component>
11+
</module>

lab01/lab_results/lab1results.txt

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
Fill ArrayList: 10
2+
Fill LinkedList: 6
3+
Random access ArrayList: 9
4+
Random access LinkedList: 3712
5+
Sequential access ArrayList: 5
6+
Sequential access LinkedList: 3
7+
Insert to top ArrayList: 0
8+
Insert to bottom ArrayList: 0
9+
Insert to middle ArrayList: 0
10+
Insert to top LinkedList: 1
11+
Insert to bottom LinkedList: 1
12+
Insert to middle LinkedList: 68
4.05 KB
Binary file not shown.

lab01/src/Main.java

Lines changed: 108 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,108 @@
1+
import java.util.ArrayList;
2+
import java.util.LinkedList;
3+
import java.util.List;
4+
import java.util.Random;
5+
6+
7+
8+
public class Main {
9+
static int randomElementLimit = 100;
10+
static String ArrayList = "ArrayList";
11+
static String LinkedList = "LinkedList";
12+
13+
static Random random = new Random();
14+
15+
static int FillArrayElementsNumber = 100000;
16+
static int InsertElementsNumber = 1000;
17+
18+
public static void main(String[] args) {
19+
List<Integer> arrayList = new ArrayList<>();
20+
List<Integer> linkedList = new LinkedList<>();
21+
22+
CheckInTimeFillList(arrayList, FillArrayElementsNumber, ArrayList);
23+
CheckInTimeFillList(linkedList, FillArrayElementsNumber, LinkedList);
24+
25+
CheckInTimeRandomAccess(arrayList, ArrayList);
26+
CheckInTimeRandomAccess(linkedList, LinkedList);
27+
28+
CheckInTimeSequentialAccess(arrayList, ArrayList);
29+
CheckInTimeSequentialAccess(linkedList, LinkedList);
30+
31+
CheckInTimeInserts(arrayList, ArrayList);
32+
CheckInTimeInserts(linkedList, LinkedList);
33+
}
34+
35+
public static int randomNumber(int randomLimit) {
36+
return random.nextInt(randomLimit);
37+
}
38+
39+
public static void CheckInTimeFillList(List<Integer> list, int elementsNumber, String listType){
40+
long time = System.currentTimeMillis();
41+
42+
for (int i = 0; i < elementsNumber; i++){
43+
list.add(randomNumber(randomElementLimit));
44+
}
45+
46+
System.out.printf("Fill %s: %s%n", listType, System.currentTimeMillis() - time);
47+
}
48+
49+
public static void CheckInTimeRandomAccess(List<Integer> list, String listType){
50+
long time = System.currentTimeMillis();
51+
52+
for (int i = 0; i < FillArrayElementsNumber; i++){
53+
int temp = list.get(randomNumber(FillArrayElementsNumber));
54+
}
55+
56+
System.out.printf("Random access %s: %s%n", listType, System.currentTimeMillis() - time);
57+
}
58+
59+
public static void CheckInTimeSequentialAccess(List<Integer> list, String listType){
60+
long time = System.currentTimeMillis();
61+
62+
for (int element : list){
63+
int temp = element;
64+
}
65+
66+
System.out.printf("Sequential access %s: %s%n", listType, System.currentTimeMillis() - time);
67+
}
68+
69+
public static void CheckInTimeInserts(List<Integer> list, String listType){
70+
CheckInTimeListTop(list, listType);
71+
CheckInTimeListBottom(list, listType);
72+
CheckInTimeListMiddle(list, listType);
73+
}
74+
75+
public static void CheckInTimeListTop(List<Integer> list, String listType){
76+
long time = System.currentTimeMillis();
77+
78+
for (int i = 0; i < InsertElementsNumber; i++){
79+
list.set(i, randomNumber(randomElementLimit));
80+
}
81+
82+
System.out.printf("Insert to top %s: %s%n", listType, System.currentTimeMillis() - time);
83+
}
84+
85+
public static void CheckInTimeListBottom(List<Integer> list, String listType){
86+
long time = System.currentTimeMillis();
87+
88+
for (int i = InsertElementsNumber-1; i > -1; i--){
89+
list.set(i, randomNumber(randomElementLimit));
90+
}
91+
92+
System.out.printf("Insert to bottom %s: %s%n", listType, System.currentTimeMillis() - time);
93+
}
94+
95+
public static void CheckInTimeListMiddle(List<Integer> list, String listType){
96+
long time = System.currentTimeMillis();
97+
98+
int listHalfSize = list.size() / 2;
99+
int listMiddleElement = listHalfSize - InsertElementsNumber / 2;
100+
101+
for (int i = listMiddleElement; i < (listMiddleElement+InsertElementsNumber); i++){
102+
list.set(i, randomNumber(randomElementLimit));
103+
}
104+
105+
System.out.printf("Insert to middle %s: %s%n", listType, System.currentTimeMillis() - time);
106+
}
107+
108+
}

0 commit comments

Comments
 (0)