论坛首页 入门技术论坛

Java集合 之 如何动态控制HashMap

浏览 8662 次
该帖已经被评为新手帖
作者 正文
   发表时间:2010-12-09  
其实我不是说楼主,确实有点。。。。
0 请登录后投票
   发表时间:2010-12-09  
个人看法,不要继承,可以Decorator或Proxy一个map类,这样灵活多了,还可以根据策略或其它方式封装不同的map实例,以实现有序,同步等功能。
0 请登录后投票
   发表时间:2010-12-09  
谢谢大家的回复,我当初是看了 How Tomcat works后,看到这个类比较好,才展示给大家看看,如果有不对的地方请大家多多指教。。。
0 请登录后投票
   发表时间:2010-12-09  
aabcc 写道
http4j 写道
我不觉得这个类很二, 楼主扩展的是HashMap,又不是ConcurrentHashMap,要那么多同步锁或者AtomicBoolean,未必适合楼主的场景。不理解说二的人都怎么想的?

lz提到了锁,但是既没有 同步块也没有lock-free算法

很容易让人误解啊,后面LZ的解释我算是明白一点点了

这个其实是 LZ看 How Tomcat works 得到的例子吧? 这个明显是 Tomcat的Custom解决方法,只适合TOMCAT的某场景

个人觉得不太适合作为一个 编程方法来让大家学习


这个楼主有责任,只不过说人家二的人明显没仔细看帖子,就上来攻击了。
楼主所说的所明显是控制访问用的,而不是多线程概念里的同步锁。

0 请登录后投票
   发表时间:2010-12-09  
有点像struts例的freeze

不过说真的,这题目真的……
0 请登录后投票
   发表时间:2010-12-09  
LZ大学专业是计算机吗?
0 请登录后投票
   发表时间:2010-12-09  
he_wen 写道
这个类没有考虑线程安全问题,因为HashMap本来就是线程不安全。我主要做的就是限制HashMap值的操作。在Tomcat源码中就是这样做的,因为Servlet获取请求信息如:request.getParameterMap()时候,刚刚开始Tomcat是不会马上把字符串解析出来,而是存放字符串,只有用户调用了函数的时候它才会解析,在存放到HashMap中。。。呵呵。。。可能起的名字有误会,希望大家见谅!!!刚刚开始写博客有很多地方请指教


请问这个跟加lock有什么关系呢?
我老笨呢,想了半天没想明白。
0 请登录后投票
   发表时间:2010-12-09   最后修改:2010-12-09
如果想得到一个不能修改 的Map,还是建议用
Collections.unmodifiableMap(originMap);

如果传递出去的map中途还需要修改,那只能说整体设计有点问题了。
0 请登录后投票
   发表时间:2010-12-09  
在我印象中,锁这个东东应该会跟synchronized挂钩。
0 请登录后投票
   发表时间:2010-12-09  
的确,单纯控制访问,应用代理模式就OK了,
0 请登录后投票
论坛首页 入门技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics