Immutable中文意思就是不可变。那为什么需要构建一个不可变的对象?原因有以下几点: 在并发程序中,使用Immutable既保证线程安全性,也大大增强了并发时的效率(跟并发锁方式相比)。尤其当一个对象是值对象时,更应该考虑采用Immutable方式; 被不可信的类库使用时会很安全; 如果一个对象不需要支持修改操作(mutation 11年前 (2013-07-12) 8524℃ 1评论8喜欢
今天谈谈Guava类库中的Multisets数据结构,虽然它不怎么经常用,但是还是有必要对它进行探讨。我们知道Java类库中的Set不能存放相同的元素,且里面的元素是无顺序的;而List是能存放相同的元素,而且是有顺序的。而今天要谈的Multisets是能存放相同的元素,但是元素之间的顺序是无序的。从这里也可以看出,Multisets肯定不是实 11年前 (2013-07-11) 4633℃ 0评论1喜欢
在前面的《Guava学习之Multimap》文章中我们谈到了Guava类库中的Multimap,其特点是存在在Multimap中的键值对可以不唯一;而我们又知道,在Java集合类库中有个Map,它的特点是存放的键(Key)是唯一的,而值(Value)可以不唯一,如果我们需要键(Key)和值(Value)都唯一,该怎么实现?这就是今天要谈的BiMap结构。 在过去,如 11年前 (2013-07-10) 7091℃ 2评论2喜欢
相信大家对Java中的Map类及其之类有大致的了解,Map类是以键值对的形式来存储元素(Key->Value),但是熟悉Map的人都知道,Map中存储的Key是唯一的。什么意思呢?就是假如我们有两个key相同,但value不同的元素需要插入到map中去,那么先前的key对应的value将会被后来的值替换掉。如果我们需要用Map来把相同key的值存在一起,代 11年前 (2013-07-09) 7835℃ 1评论1喜欢
我们都知道,java中的Map结构是key->value键值对存储的,而且根据Map的特性,同一个Map中不存在两个Key相同的元素,而value不存在这个限制。换句话说,在同一个Map中Key是唯一的,而value不唯一。Map是一个接口,我们不能直接声明一个Map类型的对象,在实际开发中,比较常用的Map性数据结构是HashMap和TreeMap,它们都是Map的直接子类 11年前 (2013-07-04) 30417℃ 2评论23喜欢
版本升级[code lang="bash"]//更新软件源,最后会读取软件包列表sudo apt-get update sudo update-manager -c -d[/code]然后选择 upgrade普通升级[code lang="bash"]sudo apt-get updatesudo apt-get upgrade[/code]升级单一软件[code lang="bash"]sudo apt-get updatesudo apt-get upgrade package_name_your_want_to_upgrade[/code]全部升级[code lang="bash"]//更新所 11年前 (2013-07-03) 18673℃ 0评论1喜欢
Web服务是一种新兴的应用模式,它很好地解决了互联网中跨平台软件的连接问题。Web服务是用来支持互联网中不同计算机之间操作性的软件系统,它定义了一种机器可读的接口(比如WSDL文档),其他软件系统可以通过SOAP消息和Web服务进行交互,交互通常用HTTP协议,而这些消息格式通常是基于XML的。和传统的应用程序不同的地 11年前 (2013-06-20) 3941℃ 3评论3喜欢
在社会关系网中,入度越多的实体权威性越大;反之则越小。从上面的定义可以看出,权威性的衡量必须在有向图中进行,无向图是没有权威性的概念,不过无向图中可以用中心度去衡量实体的重要性。目前,比较常见的用于计算结点权威性的模型主要有三种:度权威(Degree Prestige)、邻近权威(Proximity Prestige)以及等级权威(Rank 11年前 (2013-05-30) 3942℃ 1评论4喜欢
面试题目:输入n个整数,输出其中最小的前k个数。 例如输入1,2,3,4,5,6,7和8这8个数字,则最小的3个数字为1,2,3。 分析:这道题最简单的思路莫过于把输入的n个整数排好序,然后输出前面k个数,这就是最小的前k个数。但是按照这种思路最好的时间复杂度为O(nlogn),是否还有比这个更快的算法呢? 11年前 (2013-05-21) 5588℃ 0评论1喜欢
很多人在面试中会被问到这样的题目,题目的含义是有如下的组合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相等,则这次分解就完成了,我们可以把分解的组合输出来, 11年前 (2013-05-16) 3804℃ 0评论2喜欢