在《如何快速判断正整数是2的N次幂》文章中我们谈到如何快速的判断给定的正整数是否为2的N次幂,今天来谈谈如何快速地判断一个给定的正整数是否为4的N次幂。将4的幂次方写成二进制形式后,很容易就会发现有一个特点:二进制中只有一个1(1在奇数位置),并且1后面跟了偶数个0; 因此问题可以转化为判断1后面是否跟了 w397090770 11年前 (2013-09-30) 5071℃ 0评论5喜欢
[caption id="attachment_762" align="aligncenter" width="442"] Guava学习之AbstractSortedSetMultimap[/caption] AbstractSortedSetMultimap是一个抽象类,其继承关系如上所示,关于AbstractSetMultimap和SortedSetMultimap的介绍分别在《Guava学习之AbstractSetMultimap》和《Gauva学习之SortedSetMultimap》,这里就不再介绍了。AbstractSortedSetMultimap类是SortedSetMultimap的基本实现,不过A w397090770 11年前 (2013-09-29) 3176℃ 0评论4喜欢
[caption id="attachment_756" align="aligncenter" width="195"] Gauva学习之SortedSetMultimap[/caption] SortedSetMultimap是一个接口,它的继承关系如上所示。继承了SortedSetMultimap接口的类中key所对应的value是有序的。因为SortedSetMultimap的子类中key所对应的value是有序的,所以SortedSetMultimap重写了SetMultimap中的以下四个方法:[code lang="JAVA"]@OverrideSortedSet< w397090770 11年前 (2013-09-27) 4144℃ 0评论3喜欢
这篇文章是续着昨天的《Guava学习之SetMultimap》写的。AbstractSetMultimap是一个抽象类,主要是实现SetMultimap接口中的方法,但是其具体的实现都是调用了AbstractMapBasedMultimap类中的相应实现,只是将AbstractMapBasedMultimap类中返回类行为Collection的修改为Set。下面主要说说AbstractSetMultimap类的相关实现。 1、在AbstractMapBasedMultimap类中就 w397090770 11年前 (2013-09-26) 2865℃ 1评论5喜欢
[caption id="attachment_751" align="aligncenter" width="536"] Guava学习之SetMultimap[/caption] SetMultimap及其子类的继承图如上所示。 SetMultimap是一个接口,继承自Multimap接口,同昨天说的ListMultimap接口类似,它也定义了所有继实现自SetMultimap的子类定义了一些共有的方法签名。SetMultimap接口并没有定义自己特有的方法签名,里面所 w397090770 11年前 (2013-09-25) 9268℃ 1评论4喜欢
Resources提供提供操作classpath路径下所有资源的方法。除非另有说明,否则类中所有方法的参数都不能为null。虽然有些方法的参数是URL类型的,但是这些方法实现通常不是以HTTP完成的;同时这些资源也非classpath路径下的。 下面两个函数都是根据资源的名称得到其绝对路径,从函数里面可以看出,Resources类中的getResource函数 w397090770 11年前 (2013-09-25) 6521℃ 0评论4喜欢
ArrayListMultimap类的继承关系如下图所示:[caption id="attachment_744" align="aligncenter" width="593"] Guava ArrayListMultimap[/caption] ListMultimap是一个接口,继承自Multimap接口。ListMultimap接口为所有继实现自ListMultimap的子类定义了一些共有的方法签名。ListMultimap接口并没有定义自己特有的方法签名,里面所有的方法都是重写了Multimap接口中的声明 w397090770 11年前 (2013-09-24) 8295℃ 0评论2喜欢
CharSequenceReader类是以CharSequence的形式读取字符。CharSequenceReader类继承自Reader类,除了remaining()、hasRemaining()以及checkOpen()函数之后,其他的函数都是重写Reader类中的函数。CharSequenceReader类声明没有用public关键字,所以我们暂时还不能调用这个类CharSequenceReader类有下面三个成员变量[code lang="JAVA"] private CharSequence seq; //存放 w397090770 11年前 (2013-09-23) 2868℃ 1评论2喜欢
大家都知道>是比较两个对象的大小,那>>和>>>的区别呢? >>和>>>都是移位操作;对正数的移位操作它们的功能都是一样的,如下:[code lang="JAVA"]15 >> 2 = 315 >>> 2 = 3[/code]其实就是将15除于4,得到的商。转换为二进制可能更直观(为了方便,下面的二进制操作我们都是以八位进行的, w397090770 11年前 (2013-09-22) 32814℃ 2评论17喜欢
求两个整数的平均值这个问题相信大家都想过,大家肯定会很快的写出以下的算法:[code lang="JAVA"]public static int mean(int a, int b){ return (a + b) / 2;}或者public static int mean(int a, int b){ return (a + b) >> 1;}或者public static int mean(int a, int b){ return (a + b) >>> 1;}[/code] 不错,上面的函数是能够求出a和b的平 w397090770 11年前 (2013-09-18) 5554℃ 5评论3喜欢