java 之回调函数 rollback

之前对回调函数不是很理解,经同事提醒,恍然大悟.

今天我们就从冒泡排序开始说起,冒泡排序大家应该都知道,所有接触过编程语言的,所知道的第一个排序应该都是它.

//冒泡排序

private static void sort(int[] a,Comparator comparator)
 {
      for(int i=0;i<a.length;i++)
      {
               for(int j=0;j<a.length-i-1;j++)
           {
                if(comparator.compare(a[j],a[j+1])==1)
                {
                     int     temp=a[j];
                     a[j]    =    a[j+1];
                     a[j+1] =    temp;
                } 
            }
      } 
 }

当我们需要实现 排序顺序 由调用者决定时,冒泡排序就变成了底层代码,不能乱动,这时回调函数就派上用场了

定义接口

interface Comparator{
 int compare(int a,int b);
  
}

实现类

//如果a>b返回1;a<b返回-1;否则返回0
class MyComparator implements Comparator{

public int compare(int a, int b) {
       if(a > b){
         return 1;
  } else if(a < b){
   return -1;
  } else {
   return 0;
  }
 }
}

//倒序排列
class MyComparatorDesc implements Comparator{
 public int compare(int a, int b) {
  if(a > b){
   return -1;
  } else if(a < b){
   return 1;
  } else {
   return 0;
  }
 }
 
}

//需要一个comparator接口

private static void sort(int[] a,Comparator comparator)
 {
  for(int i=0;i<a.length;i++)
  {
   for(int j=0;j<a.length-i-1;j++)
   {
    if(comparator.compare(a[j],a[j+1])==1)
    {
     int temp=a[j];
     a[j]=a[j+1];
     a[j+1]=temp;
    }
   }
  } 
 }

主程序

public static void main(String[] args) {
  int[] array=new int[]{11,22,33,44,11};
  //降序排列

//传递一个实现接口Comparator的类
  sort(array,new MyComparatorDesc());
  for(int arr:array)
  {
   System.out.print(arr+"  ");
  }
  //升序排列
  sort(array,new MyComparator());
  for(int arr:array)
  {
   System.out.print(arr+"  ");
  }

时间: 2024-10-13 19:12:19

java 之回调函数 rollback的相关文章

实例介绍 Java(android) 回调函数使用方法

在Android开发中经常用到回调机制,其中最典型的就是控件被触发的实现方式,简单而言,如Button被Click后,是系统调用了OnClick方法,而我们为Button注册了OnClickListener监听器,当被触发Click后,OnClickListener中的OnClick方法就会被回调,我们就能在其中执行相应操作了. 下面举一个简单的例子介绍回调的实现方式: 回调函数使用的简单例子 程序员A写了一段程序(程序a),其中预留有回调函数接口,并封装好了该程序.程序员B要让a调用自己的程序

java中回调函数的使用

package com.huawei.common; import java.sql.ResultSet;import java.sql.SQLException; /** * 回调函数 * @author Administrator * */public interface CallBack { void execute(ResultSet rs) throws SQLException; } package com.huawei.dao; import java.sql.Connection

Java(Android)回调函数详解

一.前言 本周有位入行开发不久的朋友问我回调究竟是个什么概念,在网上看了很多的回调函数解释,但是越看越乱.虽然回调函数这个梗已经不新鲜了,这里还是用书面的形式记录下. 如果有了解的,就无需再看. 二.概念 概念上,这里引用百度百科的解释,如下: 回调函数就是一个通过函数指针调用的函数.如果你把函数的指针(地址)作为参数传递给另一个函数,当这个指针被用来调用其所指向的函数时,我们就说这是回调函数.回调函数不是由该函数的实现方直接调用,而是在特定的事件或条件发生时由另外的一方调用的,用于对该事件或条

java中回调函数的理解

不要忽律学习中的一点点细节,也许他会决定你的成败. 这是在c/c++中的定义: 回调函数就是一个通过函数指针(函数地址)调用的函数.如果把函数的指针(也即函数的地址)作为参数传递给另一个函数,当通过这个指针调用它所指向的函数时,称为函数的回调. 回调函数不是由该函数的实现方直接调用的,而是在特定的事件或条件发生时,由另外的一方调用的,用于对该事件或条件进行响应. 软件模块之间总是存在着一定的接口,从调用方式上,可以把他们分为三类: 同步调用.回调和异步调用. 同步调用是一种阻塞式调用,调用方要等

Java/Android中的函数调用&amp;回调函数&amp;自定义回调函数

在做Android自定义控件时遇到要自定义回调函数的问题,想想自己还暂时没有那么精深的技术,赶紧返过头回来再重新研究Java中回调函数的问题.然而不幸的是,网上太多杂乱的帖子和博客都是转来转去,而且都是那一篇"C中的回调函数.....指针.....java....",一点看不出来是自己的思路,估计都是哪哪哪抄来的!(呵呵,要么就是吐槽对了,要么就是我水平太烂读不懂还妄加评论)还有一些很不错的文章,我会在最后参考中加上链接,大家可以看看. 那么来开始我们的正题--什么是回调函数? 我们一

Java中的回调函数学习

Java中的回调函数学习 博客分类: J2SE JavaJ# 一般来说分为以下几步: 声明回调函数的统一接口interface A,包含方法callback(); 在调用类caller内将该接口设置为私有成员private A XXX; 在caller内提供实现A接口的public方法(将外部该接口的实现类通过形参传入caller的XXX): caller的某个方法dosth()中会用到XXX.callback()方法; 在caller的实例中,先实现A接口,后调用dosth()方法: 网上流行

Java中的回调函数学习-深入浅出

Java中的回调函数一般来说分为下面几步: 声明回调函数的统一接口interface A.包括方法callback(); 在调用类caller内将该接口设置为私有成员private A XXX; 在caller内提供实现A接口的public方法(将外部该接口的实现类通过形參传入caller的XXX): caller的某个方法dosth()中会用到XXX.callback()方法; 在caller的实例中,先实现A接口.后调用dosth()方法: 样例: Java代码   //回调函数接口及方法

Java回调函数详解

为了了解什么是回调函数,在网上查阅了如下资料,整理如下: 资料一: 首先说说什么叫回调函数? 在WINDOWS中,程序员想让系统DLL调用自己编写的一个方法,于是利用DLL当中回调函数(CALLBACK)的接口来编写程序,使它调用,这个就 称为回调.在调用接口时,需要严格的按照定义的参数和方法调用,并且需要处理函数的异步,否则会导致程序的崩溃. 这样的解释似乎还是比较难懂,这里举个简 单的例子: 程序员A写了一段程序(程序a),其中预留有回调函数接口,并封装好了该程序.程序员B要让a调用自己的程

转Java 回调函数的理解

所谓回调,就是客户程序C调用服务程序S中的某个函数A,然后S又在某个时候反过来调用C中的某个函数B,对于C来说,这个B便叫做回调函数.例如Win32下的窗口过程函数就是一个典型的回调函数.一般说来,C不会自己调用B,C提供B的目的就是让S来调用它,而且是C不得不提供.由于S并不知道C提供的B姓甚名谁,所以S会约定B的接口规范(函数原型),然后由C提前通过S的一个函数R告诉S自己将要使用B函数,这个过程称为回调函数的注册,R称为注册函数.Web Service以及Java的RMI都用到回调机制,可