1   /**
2    * 183.592 Programmierpraxis TU Wien WS2014/15 H.Moritsch
3    * Verarbeitung von Arrays
4    */
5   public class ArrayExamples2 {
6       public static void main(String[] args) {
7   
8           // Arrays deklarieren und erzeugen
9           int[] a = new int[10];
10          int[] b = new int[10];
11          int[] c = new int[10];
12  
13          // Array a initialisieren
14          for (int i = 0; i < 10; i++)    // elementweise Zuweisung von Werten:
15              a[i] = i;                   // dem Element a[i] wird als Wert sein Index (i) zugewiesen
16              
17          // Array kopieren: Werte der Elemente   
18          for (int i = 0; i < 10; i++)    // Kopieren der Werte der Elemente von a 
19              b[i] = a[i];                // in die entsprechenden Elemente von b
20  
21  
22          // mittels length:
23          // for (int i = 0; i < a.length; i++) 
24          //     a[i] = i;
25  
26          // for (int i = 0; i < a.length; i++) 
27          //     b[i] = a[i];
28  
29  
30          // Array a ausgeben
31          for (int i = 0; i < b.length; i++) 
32              System.out.println("a[" + i + "] : "+b[i]);
33          System.out.println();       // Abschluss mit Leerzeile
34  
35          // Array b ausgeben, mittels Methode
36          ausgabe ( b );
37  
38          // Array a nach Array c kopieren
39          kopiere( a, c );            // Array c wird verändert! 
40          ausgabe( c );
41  
42          // neues Array d erzeugen, das eine Kopie von a ist
43          int[] d = kopie( a );
44          ausgabe( d );
45  
46          // Elemente von a quadrieren
47          quadriere( a );             // Array a wird verändert! 
48          ausgabe( a );
49  
50          // neues Array e erzeugen, das die quadrierten Elemente von a enthält
51          int[] e = quadrat( a );
52          ausgabe( e );
53  
54      }
55  
56      /**
57      * Ausgabe aller Elemente eines Arrays.
58      */
59      private static void ausgabe(int[] a) {
60  
61          for (int i = 0; i < a.length; i++) 
62              System.out.println("[" + i + "]: " + a[i]);
63  
64          System.out.println();               // Abschluss mit Leerzeile
65      }
66  
67      /**
68      * Kopieren eines Arrays.
69      * Das Array, das an Stelle von b übergeben wird, wird verändert!
70      */
71      private static void kopiere(int[] a, int[] b) {
72          for (int i = 0; i < a.length; i++)  // Kopieren der Werte der Elemente von a 
73              b[i] = a[i];                    // in die entsprechenden Elemente von b
74      }
75  
76      /**
77      * Kopieren eines Arrays.
78      * Liefert neues Array, das eine Kopie des übergebenen Arrays ist.
79      */
80      private static int[] kopie(int[] a) {
81          int[] r = new int[a.length];        // neues Array r derselben Länge wie a
82          
83          for (int i = 0; i < a.length; i++)  // Kopieren der Werte der Elemente von a
84              r[i] = a[i];                    // in die entsprechenden Elemente von r
85  
86          return r;                           // r wird als Ergebnis zurückgegeben
87      }
88  
89      /**
90      * Elementweises Quadrieren eines Arrays.
91      * Das übergebene Array wird verändert!
92      */
93      private static void quadriere(int[] a) {
94  
95          for (int i = 0; i < a.length; i++)  
96              a[i] = a[i] * a[i];             // Element i wird quadriert
97      }
98  
99      /**
100     * Elementweises Quadrieren eines Arrays.
101     * Liefert ein neues Array, das die Quadrate des übergebenen Arrays enthält.
102     */
103     private static int[] quadrat(int[] a) {
104         int[] r = new int[a.length];        // neues Array derselben Länge wie a
105 
106         for (int i=0; i< a.length; i++)     // den Elementen von r werden die Quadrate  
107             r[i] = a[i] * a[i];             // der entsprechenden Elemente von a zugewiesen
108 
109         return r;                           // r wird als Ergebnis zurückgegeben
110     }
111 
112 }
113