java回调函数的使用
来源:互联网 发布:域名公安局备案 编辑:程序博客网 时间:2024/05/17 06:12
今天看了看java的回调函数的简单使用,有点感想。
java为了避免C/C++的指针的使用错误,去除了指针这个功能,但是却保留了函数指针的功能,即回调函数。
所谓回调函数,就是指函数现在某处注册(已经写好),而它将在稍后某个需要的时候被调用。
举例如下:
现在已经实现了插入排序的升序方法,如下:
interface IntCompare{public int cmp(int a,int b);}class Cmp1 implements IntCompare{@Overridepublic int cmp(int a, int b) {// TODO Auto-generated method stubif(a > b){return 1;}else if(a < b){return -1;}else{return 0;}}}
插入排序代码如下:
public static void insertSort(int[] nums, IntCompare cmp){if(nums != null){for(int i = 1; i < nums.length; i++){int temp = nums[i],j = i;if(cmp.cmp(nums[i-1], temp) == 1){while(j >= 1 && cmp.cmp(nums[j-1], temp) == 1){nums[j] = nums[j-1];j--;}}nums[j] = temp;}}}主代码如下:
int[] nums1 = {7,3,19,40,4,7,1,15};insertSort(nums1,new Cmp1());for(int a:nums1)System.out.print(a + " ");
和普通的插入排序不同的时,参数多了一个自己定义的IntCompare对象cmp,将Cmp1实例化的对象作为参数传至inserSort()中,Cmp1的cmp方法中,当cmp(a,b)==1时,代表a>b。即nums[i-1]>temp,也就是当前处于降序的状态。会进入到函数主体中。
现要求实现降序排列,再写一个方法肯定是低效率的,那么按照Cmp1的类,再写一个Cmp2类,将Cmp2放入insertSort()中,就可以实现降序排列。
具体实现如下:
class Cmp2 implements IntCompare{public int cmp(int a,int b){if(a < b){return 1;}else if(a > b){return -1;}else{return 0;}}}
0 0
- java回调函数的使用笔记
- Java回调函数的使用
- Java中回调函数的使用
- java回调函数的使用
- 关于JAVA回调函数的使用
- Java回调函数使用
- Java回调函数使用
- Java回调函数使用
- Java回调函数使用
- Java回调函数使用
- Java回调函数使用
- Java回调函数使用
- Java回调函数使用
- Java回调函数使用
- Java回调函数使用
- Java回调函数使用
- Java回调函数使用
- 回调函数的使用
- 【走过的弯路】Source Insight 常用配置汇总
- 中间件技术介绍整理
- 堆栈溢出问题 test dword ptr [eax],eax probe page.
- Linux 环境配置
- kaggle实战之Titanic(2)-分类器的选择与实现
- java回调函数的使用
- 【java】二维码的生成和使用
- 工作流引擎Activiti使用自我总结
- 关于切圆角的性能问题
- leetcode 292 Nim Game JAVA
- Official Program for CVPR 2015
- SqlServer & Windows 可更新订阅立即更新启用分布式事务协调器(MSDTC)
- VERILOG实现四位七段数码管显示
- Java Nio 十、Java NIO ServerSocketChannel