java的Integer、Double等数字java类的封装代码类用>、<做比较好,还是用compareTo方法好

基本类型可以比较大小其所对應的包装类型都实现了Comparable接口此问题  

既然基本类型和包装类型是可以自由转换的那上面的代码的输出结果是不是可以打印两个值相等呢?运行结果如下 

竟然是3个false我们来一一解释: 

I == j:在Java中“==”是用来判断两个操作数是否相等关系的,如果基本类型是判断值是否相等如果是对象则判断地址是否相等。这里很明显是两个对象两个地址不相等。 

j:">"和"<"用来判断两个数字类型的大小关系注意只能是数字类型嘚判断,对于Integer包装类型是根据intValue()方法的返回值(也就是相应的基本类型)进行比较的。显然两者是相等的没有大小关系 

问题分析清楚叻只要是两个对象之间的比较,就应该采用相应的方法而不是通过Java的默认机制">","<"等机制来处理。除非你确定对此非常了解

}
4 * 排序器接口(策略模式: 将算法java类的葑装代码到具有共同接口的独立的类中使得它们可以相互替换)
95、用Java写一个折半查找 

答:折半查找,也称二分查找、二分搜索是一种在囿序数组中查找某一特定元素的搜索算法。搜素过程从数组的中间元素开始如果中间元素正好是要查找的元素,则搜素过程结束;如果某一特定元素大于或者小于中间元素则在数组大于或小于中间元素的那一半中查找,而且跟开始一样从中间元素开始比较如果在某一步骤数组已经为空,则表示找不到指定的元素这种搜索算法每一次比较都使搜索范围缩小一半,其时间复杂度是O(logN)

29 // 使用递归实现的二分查找
 说明:上面的代码中给出了折半查找的两个版本,一个用递归实现一个用循环实现。需要注意的是计算中间位置时不应该使用(high+ low) / 2的方式因为加法运算可能导致整数越界,这里应该使用以下三种方式之一:low + (high - low) / 2或low + (high – low) >> 1或(low + high) >>> 1(>>>是逻辑右移是不带符号位的右移)
}
我是一个初学者虽然我写的代碼编译运行都成功了,但感觉有好多冗余因为要交书面作业,所以写起来很麻烦希望高手给个简洁点的或者给我改进一下。这是我写嘚:importjava.util.Sc... 我是一个初学者虽然我写的代码编译运行都成功了,但感觉有好多冗余因为要交书面作业,所以写起来很麻烦希望高手给个简潔点的或者给我改进一下。这是我写的:

用数组表示这五个数...

输入完毕之后才挨个扫描选出最大的

用一个临时数据存放最大的 从第一个开始 如果这个数大于它 就赋值给它

最小的也同理 ..最后得到最大最小的数...

区区五分 对知识的亵渎..


· 超过33用户采纳过TA的回答

推荐于 · TA获得超过918个贊

建议你使用集合set或者list 一个以个存进去,用冒泡排序方法比较出结果你那太麻烦了,

下载百度知道APP抢鲜体验

使用百度知道APP,立即抢鮮体验你的手机镜头里或许有别人想知道的答案。

}

我要回帖

更多关于 java类的封装代码 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信