package javacodebook.collections.array.copy; public class ArrayCopy { private static java.util.Random random = new java.util.Random(1000000); public static void main(String[] args) { //ein leeres Array mit 5 Plätzen int[] intArray = new int[5]; int index = 0; int newValue = 0; //Eine unbekannte Menge an Zufallszahlen wird erzeugt und im Array //gespeichert. while(newValue >= 0) { // durch die Übergabe von index wird sicher gestellt, dass //mindestens die ersten 20 int-Werte positiv sind. newValue = getNewValue(index); System.out.println(newValue); //Wenn die Grenze des Arrays bereits erreicht ist, wird ein //neues Array mit mehr Platz erzeugt und die Daten werden //hineinkopiert if(index > intArray.length -1) { int[] tmp = new int[intArray.length + 5]; System.arraycopy(intArray, 0, tmp, 0, intArray.length); intArray = tmp; } intArray[index++] = newValue; } System.out.println("Das intArray enthält jetzt " + index + " Daten"); System.out.println("und hat eine Länge von " + intArray.length); } /** * Liefert einen beliebigen Integer-Wert. Solange der Index kleiner 20 ist, * werden keine negativen Werte zurückgeliefert. */ private static int getNewValue(int index) { return index < 20 ? Math.abs(random.nextInt()) : random.nextInt(); } }