- 浏览: 22979 次
- 性别:
- 来自: 杭州
最新评论
文章列表
HashMap是java中非常常用的一个类。理解其实现原理还是非常有必要,之前只是零星看了一些博客的解析,这次把我看源码后的一些理解记录在这里。
主要分成两部分,一是hashMap的数据结构 二是 hashMap的存取算法
一、数据结构
顾名思义,HashMap是基于哈希表的。具体来讲,是由java数组实现的哈希表。在HashMap源码中,这个数组定义为
transient Entry[] table
WebX是公司应用最为广泛的web框架,目前已经开源。一直以为webX是基于spring MVC的,但其实并不是,那么不同之处到底在何处,又是为什么这样实现?看过了源码,在这里梳理下思路
我以为,在业务层面上来讲web框架解 ...
redis的list 功能实践
- 博客分类:
- 存储
redis特点是单线程复用IO,支持list,set,sorted set,hash等众多数据结构,线程安全。
最近是用list做了一个商品交易记录的承载。需要显示给用户最近一个月的交易记录,且每个商品显示不超过750条。
原有实现:MySql+memcached。由于交易记录的即时性,缓存不宜太久,所以很容易把memcache击穿,mysql查询压力山大,对于交易记录太大的商品甚至出现超时错误。所以,需要改进。
分析一下这个场景,需要保存最近一个月的交易记录,而且只是提供最多750条的显示,因此对每个商品来说,这个记录数量是一定的。从数据存取角度来看,这是一个需要不断添加数 ...
看了下污染指数,今天杭州的PM2.5指数已经达到惊人的251,马上就要逼近帝都的水平,前两天还在暗自窃喜当时毕业没有去应聘北京的企业,现在看来即使是人间天堂也有灰蒙蒙见不得人的时候,都一样。
这种天气最不爽的是 ...
elcipse 启动Junit或者执行main方法报错->Cannot run program ...: CreateProcess error=206,ÎļþÃû»ò)չÃû
原因定位: 在Windows下命令行长度有限制,两个可能原因 1)maven库的路径太深2)工程路径太深。ps. 这应该是eclipse的bug
解决方法:1)改maven库默认repository到根目录下,比如修改setting.xml添加<localRepository>D:/maven_repo</localRepository>2) 修改工程名使其尽量简短3)重新 ...
mahout是 Apache Software Foundation (ASF)开发的一个开源项目,主要包括了一些经典机器学习算法的实现,并且通过对hadoop的支持可以很容易的拓展到云上,对mahout的关注主要是因为它收纳了Taste框架。
一、关于安装
有两种方式可以使用mahout,一种是直接安装:按照JDK->maven->mahout->hadoop的顺序,参照http://www.docin.com/p-239482860.html,这个过程我只完成了一半,因为后来发现mahout可以直接在eclipse里集成,非常简单->(http://www.c ...
在公司看到一些牛人的分享,了解到个性化推荐技术的魅力,直觉上对这个领域很有兴趣,于是乎看了很多资料,整理一下目前的思路。
一、为什么会有这档子事
1. 我们处在一个信息爆炸的年代,过量的信息吞噬了太多的时 ...
面向对象语言开发过程中对于switch语句是很敏感的,大多数switch基本都可以通过多态方式进行重构,从而使程序获得较好的拓展能力,最近项目开发中遇到这样一个案例,在此分享一下。
重构前程序
public void update(Request newReq){
Request existReq=dao.getExist();
Type _type=newReq.getMsgType();//Type为枚举类型
...
switch ...
研究生期间的第一个暑假,只有20多天,不过已经算是老板开恩了,实验室其他组最少的只放一个星期,不过人家是有项目做唉,羡慕中……,废话少说了。放假前参加了大老板请的一位在美国搞算法的老师上的高级算法课,总体感觉一般般,八节课里有的简单到不想听,有的难到听不懂,不过老师还算认真,当做一次算法复习还是好的,现将总结写在这儿,也算是对这十几天有个交代。
这次算法课主要集中在几个常用算法:贪婪法,排序,图周游,最大流问题以及NP问题
1.贪婪法:
初学算法时便知道这是解决问题一种很好很简单的方法,听课后才发现它能解决的问题还真是多。解决这类问题的方法可概括为“步步为营”,即每一步的选择 ...
SRM444DIV1 550分
大概意思是给定一个一定长宽的表,现在手中有两种卡片一种是2*2的“4”字卡片(16分),另一种是1*1的“1”字卡片(1分),卡片数不限,计算可以将其填入表中得到的最大分,图表中可能已有卡片存在。
*Problem StatementNOTE: This problem statement contains images that may not display properly if viewed outside of the applet.
"4Blocks" is a two player cooperative g ...
练习题做多了就发现有好多整数相关的题目都要用到因子分解(或是其变种,如整除之类),比如有一个题:给定整数N,若N可以分解为四个整数乘积,我们称其级别为1,如果上述分解的因子每个都能进行同样的分解,我们称N级别为2,依次类推,求任意N的级别
我的思路是设立一个全局变量count 通过递归函数进行N的逐步整除,每次整除count都要加1,通过count控制在4以内结束递归,然后对N的每个因子进行类似处理。类似于上一篇博客的问题。大致代码如下(未完成):
void countFactor(long n)
{
for(int i=2;i<n;i++ ...
用递归解决的一道550分题
- 博客分类:
- 算法
Problem StatementThe prime factorization of a number X is the list of prime numbers that multiply together to form X. For example,the prime factorization of 12 is 2 * 2 * 3. Note that 1 is not a prime number.An underprime is a number whose prime factorization contains a prime number of elements. For ...
给定一组数字,求其中任意K个数的组合并将各种组合存储返回
来自一道1100分的topcoder习题,该死的递归快把人搞死了,从网上查到了解决方案但还是理解的不很透彻,最大问题是返回的String值不能对原数据进行区分,尝试用ArrayList也不行,现在脑子一团糟,在博客上记录一下,以后有更好的方法再过来改
如果路过的高手有什么好的建议,敬请指教
public class Polygons2 {
static ArrayList co_term = new ArrayList();
static int count = 0;
public static vo ...
topcoder1100分题(DIV2)
- 博客分类:
- 算法
Problem Statement????Note that in the following problem statement, all quotes and angle brackets are for clarityA certain vending machine delves out its goods from a rotating cylinder, which can rotate around in both clockwise and counter-clockwise directions. The cylinder has a number of shelves on ...
今天有幸听朱老师讲课,笔记整理如下:
2008年研究生数模竞赛A题:汶川地震中唐家山堰塞湖泄洪问题
共有四个子问题:
1. 研究并建立库容与水位关系
2. 溃坝情况下的泄洪规律
3. 假设1/3洪水下泄,建立淹没区域模型,并确立人员疏散方案
4. 讨论决策正确性及可改进性
1. 库容与水位的模型
谷歌三维地形图的使用,方法是用Matlab将其转换为矩阵以水位高度为界将图像分为两块,求低于水位的平面面积
将水域近似为柱体,求库容考虑降水因素,根据天气预报资料计算降雨量,积雨区域及即降雨延时(降雨并非全在堰塞湖,也并不是一时到堰塞湖)
2. 泄洪模型 ...