-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathSolution.java
More file actions
58 lines (28 loc) · 2.21 KB
/
Solution.java
File metadata and controls
58 lines (28 loc) · 2.21 KB
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
//And the light shineth in darkness; and the darkness comprehended it not. (John 1:5)
package com.javarush.task.task34.task3413;
/*
Кеш на основании SoftReference
*/
public class Solution {
public static void main(String[] args) {
SoftCache cache = new SoftCache();
for (long i = 0; i < 2_500_000; i++) {
cache.put(i, new AnyObject(i, null, null));
}
}
}
/*
Кеш на основании SoftReference
Реализуй логику методов get, put, remove класса SoftCache:
Метод AnyObject get(Long key) должен возвращать объект типа AnyObject из мапы cacheMap по ключу key. Если такого ключа в cacheMap нет - верни null.
Метод AnyObject put(Long key, AnyObject value) должен добавлять в мапу пару key : value. Метод должен вернуть null, если в cacheMap по такому ключу ранее не было значения. Иначе - верни предыдущее значение value по этому ключу. Не забудь вызвать метод clear() у объекта типа SoftReference<AnyObject>.
Метод AnyObject remove(Long key) должен удалить из мапы cacheMap пару key : value по ключу key. Метод должен вернуть null, если в cacheMap по такому ключу ранее не было значения. Иначе - верни предыдущее значение value по этому ключу. Не забудь вызвать метод clear() у объекта типа SoftReference<AnyObject>.
Не изменяй класс AnyObject.
Метод main не принимает участия в тестировании.
Требования:
1. Класс AnyObject не должен быть изменен.
2. В классе SoftCache должно существовать приватное поле Map> cacheMap.
3. Реализуй метод get согласно условию.
4. Реализуй метод put согласно условию.
5. Реализуй метод remove согласно условию.
*/