java学习笔记之WeakHashMap 、IdentityHashMap、EnumMap
2015-09-23 15:57
621 查看
1、WeakHashMap
其中的key是弱引用。(弱引用是指一旦GC运行,就会立刻回收,该引用所指的对象)例子:
/** * WeakHashMap 中的key为弱引用,GC(Garbage Collection) * 一旦运行就会立即回收 * @author ly1 * */ public class TestWeakHashMap { public static void main(String[] args) { WeakHashMap whm = new WeakHashMap(); whm.put("123", "123"); whm.put("234", "123"); whm.put(new String("hh"), "sf"); whm.put(new String("hha"), "sf"); System.gc(); System.runFinalization(); System.out.println(whm.size()); } }
运行结果:
1 3
2、 IdentityHashMap
其中的key是以地址去重。例子:
import java.util.IdentityHashMap; import java.util.Map; /** * IdentityHashMap key以地址去重 * @author ly1 * */ public class TestIdentityHashMap { public static void main(String[] args) { Map map = new IdentityHashMap(); map.put("1","1"); map.put("1","1"); //字符串中常量池中的字符串地址相等,所以重复 System.out.println(map.size()); map.put(new String("2"), "2"); map.put(new String("2"), "2"); //字符串对象地址不相等,所以不重复 System.out.println(map.size()); } }
运行结果:
1 3
3、EnumMap
其中key只能是枚举类型,将key限制在某个范围内。例子:
import java.util.EnumMap; import java.util.Map; /** * EnumMap 其中key只能是一个枚举类型 * @author ly1 * */ public class TestEnumMap { /** * @param args */ public static void main(String[] args) { Map<Season,String> map = new EnumMap<Season,String>(Season.class); map.put(Season.Spring, "spring"); map.put(Season.Sunmmer, "summer"); map.put(Season.Automn, "Automn"); map.put(Season.Winter, "Winterx"); System.out.println(map.size()); System.out.println(map.size()); } } enum Season{ Spring, Sunmmer, Automn, Winter }
运行结果:4
相关文章推荐
- Java正则表达式入门
- javaEE__sevlet
- test5.21
- Java IO流
- C4.5决策树--Java
- Java Session
- 集合迭代删除元素
- [Java新手区] 【最权威!Eclipse快捷键大全】
- Java-Mail 发送邮件
- java 1:入门
- java内部类规则
- java系统学习(十一) --------输入与输出(I/O)
- struts2 jar包详解
- java系统学习(十一) --------输入与输出(I/O)
- java学习笔记集合框架Set集合
- Spring 邮件服务:Spring+Javamail+Spring SMTP Mail+Maven
- Java模式
- eclipse的web项目的jsp生成的servelet类在哪里
- javaEE__dtd、schema
- 重写重载