Heim  >  Artikel  >  Java  >  So implementieren Sie die Funktion von Zeigern in Java

So implementieren Sie die Funktion von Zeigern in Java

(*-*)浩
(*-*)浩Original
2019-05-28 09:16:454639Durchsuche

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 die Funktion von Zeigern in Java

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn