Schauen wir uns zunächst an, was ein Zeiger in der Sprache C ist. Im wahrsten Sinne des Wortes handelt es sich dabei um eine Struktur, die der Positionierungsfunktion ähnelt. Die wichtigste Funktion eines Zeigers besteht darin, eine Rückruffunktion zu implementieren. Die sogenannte Rückruffunktion bedeutet, dass die Funktion zuerst irgendwo registriert wird und bei Bedarf aufgerufen wird. Rückruffunktionen werden im Allgemeinen verwendet, um Nachrichten abzufangen, Systeminformationen abzurufen oder asynchrone Ereignisse zu verarbeiten.
So implementieren Sie Funktionen ähnlich Funktionszeigern in der C-Sprache
In der Java-Sprache Es gibt kein Konzept von Zeigern, um den gleichen Effekt zu erzielen. Sie sollten zuerst eine Schnittstelle definieren, dann die aufzurufende Methode in der Schnittstelle deklarieren und diese Schnittstelle dann implementieren (verschiedene funktionale Implementierungen, z. B. eine). aufsteigende und absteigende Sortierung), und schließlich wird dem aufrufenden Programm ein Objekt dieser Implementierungsklasse als Parameter übergeben, und das aufrufende Programm ruft die angegebene Funktion über diesen Parameter auf.
Die spezifische Implementierung ist wie folgt:
interface IntCompare { public int cmp(int a,int b); } class Cmp1 implements IntCompare { public int cmp(int a,int b) { if(a>b) return 1; else if(a<b) return -1; else return 0; } } 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; } } class HelloWorld { public static void main(String[] args) { int[] array1 = {7,3,19,40,4,7,1}; insertSort(array1,new Cmp1()); System.out.println("升序排列"); for(int i=0;i<array1.length;i++) { System.out.print(array1[i]+" "); } System.out.println(); int[] array2 = {7,3,19,40,4,7,1}; insertSort(array2,new Cmp2()); System.out.println("降序排列"); for(int i =0;i<array2.length;i++) { System.out.print(array2[i]+" "); } } public static void insertSort(int[] a,IntCompare cmp) { if(a!=null) { for(int i=1;i<a.length;i++) { int temp = a[i],j=i; if(cmp.cmp(a[j-1], temp)==1) { while(j>=1&&cmp.cmp(a[j-1],temp)==1) { a[j] = a[j-1]; j--; } } a[j] = temp; } for(int i=1;i<a.length;i++) { int temp = a[i]; int j = i-1; while(j>=0&&cmp.cmp(a[j], temp)==1) { a[j+1] = a[j]; j--; } a[j+1] = temp; } } } }
Das obige ist der detaillierte Inhalt vonSo implementieren Sie die Funktion von Zeigern in Java. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!