В этом уроке мы подробно расскажем, как реализовать Circular ArrayList . На Crunchify есть множество примеров, касающихся ArrayList, и этот пример будет с Integer Array.
Давайте начнем:
- Создать класс
CrunchifyCircularArrayList.java - Создайте конструктор только с одним параметром arraySize, который в нашем случае равен 10
- В основной метод, мы собираемся добавить 15 элементов, которые будут случайным целочисленным элементом
- Мы распечатаем журнал, который добавим, и напечатаем размер
- После 10-го элемента размер crunchifyArray будет стабильным на уровне 10
- Мы отсортируем и запишем crunchifyArray, который будет иметь только последние 10 элементов
CrunchifyCircularArrayList.java
Джава
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
|
пакет crunchify. ком . учебник ;
Импортировать Java. Util. Массивы ;
Импортировать Java. Util. одновременно. ThreadLocalRandom ;
/ **
* @author Crunchify.com
*
* /
общественности учебный класс CrunchifyCircularArrayList {
частный статический Целое число [ ] crunchifyArray ;
окончательный частный ИНТ arraySize ;
частный статический ИНТ первый знак равно 0 ;
частный ИНТ прошлой знак равно 0 ;
частный статический ИНТ длина знак равно 0 ;
статический ИНТ sizeForDemo знак равно 10 ;
общественности CrunchifyCircularArrayList ( int arraySize ) {
супер ( ) ;
это. ARRAYSIZE знак равно arraySize ;
CrunchifyCircularArrayList . crunchifyArray знак равно новый Integer [ arraySize ] ;
}
общественности статический недействительным главная ( Строка args [ ] ) {
CrunchifyCircularArrayList crunchifyObj знак равно новый CrunchifyCircularArrayList ( sizeForDemo ) ;
за ( int я знак равно 1 ; я < = 15 ; я ++ ) {
ИНТ crunchifyInteger знак равно ThreadLocalRandom . текущий ( ) . nextInt ( 1 , 50 ) ;
log ( «Добавление элемента:» + crunchifyInteger ) ;
crunchifyObj . положить ( crunchifyInteger ) ;
log ( Длина: + длина ) ;
}
log ( / nСортируется ArrayList (последние 10 элементов): ) ;
Целое число [ ] sortedArray знак равно getSortedArrayList ( ) ;
за ( int crunchifyArrayVal : sortedArray ) {
log ( crunchifyArrayVal + ) ;
}
}
// Simple Log Utility
частный статический недействительным log ( Объект ценность ) {
Система. вне. println ( значение ) ;
}
// Получить первый элемент
общественности статический ИНТ getFront ( ) {
вернуть первый ;
}
// Поместить элемент в круговой ArrayList
общественности синхронизированный недействительным положить ( int элемент ) {
crunchifyArray [ последний ] знак равно элемент ;
если ( длина < arraySize ) {
длина ++ ;
} еще {
первый знак равно ( первый + 1 ) % arraySize ;
}
прошлой знак равно ( последний + 1 ) % arraySize ;
}
// Сортировка crunchifyArray
общественности статический Целое число [ ] getSortedArrayList ( ) {
если ( длина == 0 ) {
вернуть ноль ;
}
Целое число [ ] newArray знак равно новый Целое число [ длина ] ;
Система. arraycopy ( crunchifyArray , 0 , newArray , 0 , длина ) ;
Массивы . sort ( newArray ) ;
вернуть Массивы . copyOf ( newArray , sizeForDemo ) ;
}
// Получить длину массива
общественности ИНТ getLength ( ) {
вернуть длина ;
}
}
|
Выход консоли Eclipse:
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
|
Добавляем элемент : 36
Длина : 1
Добавляем элемент : 28
Длина : 2
Добавляем элемент : 23
Длина : 3
Добавляем элемент : 31
Длина : 4
Добавляем элемент : 4
Длина : 5
Добавляем элемент : 28
Длина : 6
Добавляем элемент : 11
Длина : 7
Добавляем элемент : 44
Длина : 8
Добавляем элемент : 8
Длина : 9
Добавляем элемент : 31
Длина : 10
Добавляем элемент : 40
Длина : 10
Добавляем элемент : 34
Длина : 10
Добавляем элемент : 49
Длина : 10
Добавляем элемент : 1
Длина : 10
Добавляем элемент : 37
Длина : 10
Вот отсортированный ArrayList ( последний 10 элементы ) :
1
8
11
28
31
34
37
40
44
49
|
0.00 (0%) 0 votes








