Vim是一个高级文本编辑器,它提供了Unix下编辑器 'Vi' 的功能并对其进行了完善。Vim经常被认为是 "程序员的编辑器",它在程序编写时非常有用,很多人认为它是一个完整的集成开发环境(IDE)。仅管如此,Vim并不只是程序员使用的。Vim可以用于多种文档编辑,从email排版到配置文件编写。 在Ubuntu下安装一个Vim编辑器可以用下面 w397090770 12年前 (2013-07-19) 4985℃ 2评论2喜欢
在《Guava学习之RangeSet》中谈到了RangeSet的特点及其用法。今天要谈的的RangeMap和RangeSet有许多不一样的。 在Google Guava官方API上面可以得知:RangeMap是一种集合类型( collection type),它将不相交、且不为空的Range(key)映射给一个值(Value)。和RangeSet不一样,RangeMap不可以将相邻的区间合并,即使这个区间映射的值是一样的。 w397090770 12年前 (2013-07-18) 6943℃ 0评论5喜欢
前面谈到了Guava中新引入的Range类,也了解了其中的作用,那么今天来谈谈Guava中用到Range来的地方:RangeSet类。RangeSet类是用来存储一些不为空的也不相交的范围的数据结构。假如需要向RangeSet的对象中加入一个新的范围,那么任何相交的部分都会被合并起来,所有的空范围都会被忽略。 讲了这么多,我们该怎么样利用RangeS w397090770 12年前 (2013-07-17) 7442℃ 1评论4喜欢
在Guava中新增了一个新的类型Range,从名字就可以了解到,这个是和区间有关的数据结构。从Google官方文档可以得到定义:Range定义了连续跨度的范围边界,这个连续跨度是一个可以比较的类型(Comparable type)。比如1到100之间的整型数据。不过我们无法遍历出这个区间里面的值。如果需要达到这个目的,我们可以将这个范围传给Conti w397090770 12年前 (2013-07-15) 5388℃ 0评论4喜欢
Immutable中文意思就是不可变。那为什么需要构建一个不可变的对象?原因有以下几点: 在并发程序中,使用Immutable既保证线程安全性,也大大增强了并发时的效率(跟并发锁方式相比)。尤其当一个对象是值对象时,更应该考虑采用Immutable方式; 被不可信的类库使用时会很安全; 如果一个对象不需要支持修改操作(mutation w397090770 12年前 (2013-07-12) 8681℃ 1评论8喜欢
在前面的《Guava学习之Multimap》文章中我们谈到了Guava类库中的Multimap,其特点是存在在Multimap中的键值对可以不唯一;而我们又知道,在Java集合类库中有个Map,它的特点是存放的键(Key)是唯一的,而值(Value)可以不唯一,如果我们需要键(Key)和值(Value)都唯一,该怎么实现?这就是今天要谈的BiMap结构。 在过去,如 w397090770 12年前 (2013-07-10) 7191℃ 2评论2喜欢
相信大家对Java中的Map类及其之类有大致的了解,Map类是以键值对的形式来存储元素(Key->Value),但是熟悉Map的人都知道,Map中存储的Key是唯一的。什么意思呢?就是假如我们有两个key相同,但value不同的元素需要插入到map中去,那么先前的key对应的value将会被后来的值替换掉。如果我们需要用Map来把相同key的值存在一起,代 w397090770 12年前 (2013-07-09) 7965℃ 1评论1喜欢
在社会关系网中,入度越多的实体权威性越大;反之则越小。从上面的定义可以看出,权威性的衡量必须在有向图中进行,无向图是没有权威性的概念,不过无向图中可以用中心度去衡量实体的重要性。目前,比较常见的用于计算结点权威性的模型主要有三种:度权威(Degree Prestige)、邻近权威(Proximity Prestige)以及等级权威(Rank w397090770 12年前 (2013-05-30) 4136℃ 1评论5喜欢
面试题目:输入n个整数,输出其中最小的前k个数。 例如输入1,2,3,4,5,6,7和8这8个数字,则最小的3个数字为1,2,3。 分析:这道题最简单的思路莫过于把输入的n个整数排好序,然后输出前面k个数,这就是最小的前k个数。但是按照这种思路最好的时间复杂度为O(nlogn),是否还有比这个更快的算法呢? w397090770 12年前 (2013-05-21) 5647℃ 0评论2喜欢
很多人在面试中会被问到这样的题目,题目的含义是有如下的组合4=1+1+1+1、1+1+2、1+3、2+1+1、2+2。光从题目来看有两种理解: 将3 = 1 +2 和3 = 2 +1当作不同的组合。这种情况是比较简单的,直接将给定的n递归地分解成(n - 1) + 1当递归求得的结果和我们需要分解的整数n相等,则这次分解就完成了,我们可以把分解的组合输出来, w397090770 12年前 (2013-05-16) 3984℃ 0评论3喜欢