`

集合排序

 
阅读更多

 

 

一:Collections.sort

 

   我想使这个json数组降序排序的,所以原来使用的是return o2.getLongValue("xxx") - o1.getLongValue("xxx")。

   但是发现有个很大的数据一直排在最后,不知道为什么。

   经过排查分析发现原来是 compare方法的返回值是int 而我这里使用的long来减,得出的结果还是long,超出了int的范围,所以就溢出变成负数了。原本以为2的32次方很大的应该有很多位,其实不要认为int能存多大的数据4294967296 其实也就这么大啦,十位数而已。

 

	Collections.sort(result, new Comparator<JSONObject>() {

			@Override 
			public int compare(JSONObject o1, JSONObject o2) {
				return o2.getLongValue("xxx") - o1.getLongValue("xxx") > 0 ? 1 : 0;
			}
			
	});

 

 

 

 

 

 

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics