Hier ein einfaches Beispiel wie es gehen kann, und es ist schnell.
Dennoch kann man festhalten das die in Util verwendetetn Implementationen von ArrayList etc. sicher genausogut verwendet werden können.
@uwegw Na ja die Frage ist was für Zeiger brauchst Du? Zeiger auf dedizierte Speicherbereiche bekommst Du in Java nicht, aber Zeiger auf andere Objekte und damit kannst Du ja einfach verkettete Listen etc. bauen 
Code:
package com.demo.arraycopy;
import java.util.Arrays;
import java.util.Random;
/**
* Demo für die Verwendung von System.ArrayCopy und Array.sort();
* @author marohn
* @since 2.09p
*/
public class ArrayCopyDemo
{
//Original Array
private Integer[] arrayOfInt = new Integer[10];
/**
* Konstruktor, Vorbelegung des Arrays mit Integer 1..10
*/
public ArrayCopyDemo()
{
for (int i = 0; i<10; i++)
{
arrayOfInt[i] = new Integer(i+1);
}
}
/**
* Schreibt die Werte des Arrays in die Console
*/
public void dumpArray()
{
for (int i = 0; i < arrayOfInt.length; i++)
{
System.out.println(arrayOfInt[i].toString());
}
}
/**
* Schreibt zufällige Werte in das Array
* @param startIdx Index ab dem das Array mit den Werten gefüllt werden soll
*/
public void fillArrayWithRandomStuff(int startIdx)
{
Random rnd = new Random(System.currentTimeMillis());
for (int i = startIdx; i < arrayOfInt.length; i++)
{
arrayOfInt[i] = new Integer(rnd.nextInt());
}
}
/**
* Sortiert das Array mit Hilfe der Arrays.sort -Methode
* Funktioniert hier so easy weil Integer bereits das Comparator-Interface implementiert
* bei eigenen Klassen muss sichergestellt werden, das dieses Inerface implementiert wurde
*/
public void sortArray()
{
Arrays.sort(arrayOfInt);
}
private void incArray(int anz)
{
Integer[] newArr = null;
if (anz>0 && arrayOfInt != null)
{
newArr = new Integer[arrayOfInt.length + anz];
System.arraycopy(arrayOfInt, 0, newArr, 0, arrayOfInt.length);
}
else
{
throw new IllegalStateException("Parameter nicht im definierten Bereich");
}
arrayOfInt = newArr;
}
/**
* Start
* @param args - keine
*/
public static void main(String[] args)
{
ArrayCopyDemo demo = new ArrayCopyDemo();
demo.dumpArray();
System.out.println("---------------------");
demo.incArray(10);
demo.fillArrayWithRandomStuff(10);
demo.dumpArray();
System.out.println("---------------------");
demo.sortArray();
demo.dumpArray();
System.out.println("---------------------");
}
}
Lesezeichen