In WeakHashMap, an entry is automatically removed when its key is no longer exits.More precisely, the presence of a mapping for a given key will not prevent the key from being discarded by the garbage collector, that is, made finalizable, finalized, and then reclaimed.
When a key has been discarded its entry is effectively removed from the map, so this class behaves somewhat differently from other Map implementations.
package collection.demos;
import java.util.WeakHashMap;
class A {
long[] data = new long[1024 * 1024];
long id = System.currentTimeMillis();
}
public class WeakHashMapDemo {
public static void main(String[] args) {
WeakHashMap<A, String> phoneNumbers = new WeakHashMap<A, String>();
A a1 = new A();
A a2 = new A();
A a3 = new A();
phoneNumbers.put(a1, "11111111");
phoneNumbers.put(a2, "22222222");
phoneNumbers.put(a3, "33333333");
System.out.println("Elements : " + phoneNumbers);
a1 = new A();
a1 = new A();
a1 = new A();
a1 = new A();
System.out.println("Elements : " + phoneNumbers);
}
}
OUTPUT
Elements : {collection.demos.A@a90653=22222222, collection.demos.A@de6ced=33333333, collection.demos.A@190d11=11111111}
Elements : {collection.demos.A@a90653=22222222, collection.demos.A@de6ced=33333333}
In the above output, you will not see the first element having value 1111111111, because it is deleted automatically from WeakHasMap. Here, the Object being refered by a1 refrerence variable, is working as a key to value 111111111. When execution goes next, other four object are create sequencly and reference of newly created objects are host by a1 variable. So, the reference stored into a1 of previous object is removed and that object becomes free. Now the free object is reclaimed by garbaze collection. Object that was collected by garbze collection was working as key of value 1111111. So this value is removed automaticaly from WeakedHashMap.
Subscribe to:
Post Comments (Atom)
Popular Posts
-
HSQLDB is a portable RDBMS implemented in pure java. It can be embedded with your application as well as can be used separately. It is very ...
-
If you want to use the database into your web application, you can use the HSQLDB in In_Process mode. In this mode, you can embed the HSQLD...
-
HTML Page < html > < head > < title > welcome </ title > < script language = "javascript"...
-
In web application ApplicationContext is created using Context Loaders. there are two implementations of context loader. ContextLoaderLis...
-
JSP code <%@page import="java.sql.*"%> <%! int prod_id=1; String prod_name="Laptop"; int qty=2; float p...
-
Some time you will see the form containing the button " Add More " . This facility is provided for the user to get the values ...
-
HSQLDB database it a very small database that can be controlled from you application. you can start and stop the database by writing the ...
-
StudentRegistration │ index.html │ login.html │ └───WEB-INF │ web.xml │ └───classes login.class lo...
-
package process; import javax.swing. * ; import javax.swing.table. * ; import java.sql. * ; /** * This class create JTable from Da...
-
Hibernate ORM framework does not provide any approch to connect to MS Access database. Unfortunately, Access is not supported officially...
No comments:
Post a Comment