Skip to content

Commit 510bc5a

Browse files
Create WeakHashMapDemo.java
1 parent 94352ac commit 510bc5a

File tree

1 file changed

+45
-0
lines changed

1 file changed

+45
-0
lines changed
Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
package learnCollections;
2+
3+
import java.util.Map;
4+
import java.util.WeakHashMap;
5+
6+
public class WeakHashMapDemo {
7+
public static void main(String[] args) {
8+
WeakHashMap<String, Image> imageCache = new WeakHashMap<>();
9+
loadCache(imageCache);
10+
System.out.println(imageCache); // {img1=Image 1, img2=Image 2}
11+
12+
System.gc();
13+
simulateApplicationRunning();
14+
System.out.println("Cache after running (some entries may be cleared): " + imageCache); // {}
15+
}
16+
17+
public static void loadCache(Map<String, Image> imageCache) {
18+
String k1 = new String("img1");
19+
String k2 = new String("img2");
20+
imageCache.put(k1, new Image("Image 1"));
21+
imageCache.put(k2, new Image("Image 2"));
22+
}
23+
24+
private static void simulateApplicationRunning() {
25+
try {
26+
System.out.println("Simulating application running...");
27+
Thread.sleep(10000);
28+
} catch (InterruptedException e) {
29+
e.printStackTrace();
30+
}
31+
}
32+
}
33+
34+
class Image {
35+
private String name;
36+
37+
public Image(String name) {
38+
this.name = name;
39+
}
40+
41+
@Override
42+
public String toString() {
43+
return name;
44+
}
45+
}

0 commit comments

Comments
 (0)