• 《疯狂JAVA讲义》缓存实例的不可变类


    class CacheImmutale
    {
        private static int MAX_SIZE =10;
        private static CacheImmutale[] cache
            =new CacheImmutale[MAX_SIZE];
        private static int pos=0;
        private final String name;
        private CacheImmutale(String name){
            this.name=name;
        }
        public String getName(){
            return name;
        }
        public static CacheImmutale valueOf(String name){
            for(int i=0;i<MAX_SIZE;i++){
                if(cache[i]!=null&&cache[i].getName().equals(name)){
                    return cache[i];
                }
            }
            if(pos== MAX_SIZE){
                cache[0]=new CacheImmutale(name);
                pos=1;
            }
            else {
                cache[pos++]=new CacheImmutale(name);
            }
            return cache[pos-1];
        }
        public boolean equals(Object obj){
            if(this == obj){
                return true;
            }
            if(obj!=null && obj.getClass()==CacheImmutale.class){
                CacheImmutale ci=(CacheImmutale)obj;
                return name.equals(ci.getName());
            }
            return false;
        }
        public int hashCode(){
            return name.hashCode();
        }
    }
    public class CacheImmutaleTest
    {
        public static void main(String[] args){
            CacheImmutale c1=CacheImmutale.valueOf("Hello");
            CacheImmutale c2=CacheImmutale.valueOf("Hello");
            System.out.println(c1==c2);
        }
    }
  • 相关阅读:
    【如何入门ACM】
    HDU
    HDU 6107 Typesetting
    bzoj 3223: Tyvj 1729 文艺平衡树
    51Nod 1781 跑的比谁都快
    51Nod 1331 狭窄的通道
    51Nod 1555 布丁怪
    hihocoder 1035 : 自驾旅行 III
    51Nod 1196 字符串的数量
    51Nod 1530 稳定方块
  • 原文地址:https://www.cnblogs.com/whutqueqiaoxian/p/5711412.html
Copyright © 2020-2023  润新知