Arrays
final String
karen = "Karen Smith",
john = "John Duncan",
paul = "Paul Jacobs",
suzanne = "Suzanne Enders",
peter = "Peter Phillips"; // 10 more to come ...
IO.println(karen);
IO.println(john);
...-
Generate Comma separated list:
Karen Smith, John Duncan, Paul Jacobs, Suzanne Enders, Peter Phillips
-
Generate HTML list emphasizing family names:
<ul> <li>Karen <emph>Smith</emph></li> <li>John <emph>Duncan</emph></li> <li>Paul <emph>Jacobs</emph></li> <li>Suzanne <emph>Enders</emph></li> <li>Peter <emph>Phillips</emph></li> </ul>
No. 93
Assignment to final variable?
|
Q: |
In Figure 199, “Example:
|
|
A: |
The variable |
for (int i = 0; i < 5; i++) {
IO.println("At index " + i + ": value == " + primes[i]);
}Result:
At index 0: value == 2 At index 1: value == 3 At index 2: value == 5 At index 3: value == 7 At index 4: value == 11
for (int i = 0; i < 6; i++) {
IO.println("At index " + i + ": value == " + primes[i]);
}Result:
At index 0: value == 2
At index 1: value == 3
At index 2: value == 5
At index 3: value == 7
At index 4: value == 11
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 5
at Primes.main(Primes.java:5)IO.println("primes.length == " + primes.length);
for (int i = 0; i < primes.length; i++) {
IO.println("At index " + i + ": value == " + primes[i]);
} |
|
| Result: | primes.length == 5 At index 0: value == 2 At index 1: value == 3 At index 2: value == 5 At index 3: value == 7 At index 4: value == 11 |
|
|
| Result: | value == 2 value == 3 value == 5 value == 7 value == 11 |
final int[] primes = new int[5]; // Last index is 4 rather than 5! primes[0] = 2; primes[1] = 3; primes[2] = 5; primes[3] = 7; primes[4] = 11; primes[5] = 13; // Excessing array limit |
| Result: |
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 5
at Primes.main(Primes.java:25) |
Combining array allocation and value assignment:
|
|
-
Series of objects having identical type.
-
Array consists of array elements.
-
Element access by index value.
-
Holding either primitive types or object references (Class instance or array).
-
Contiguous storage in memory.
-
Arbitrary array dimensions by virtue of nesting: One-dimensional, two-dimensional etc.
void main() {
// Error: Array initializer is not allowed here
double average1 = getAverage({1, 5, 20, 4});
// Works!
double average2 = getAverage(new int[]{1, 5, 20, 4});
}
/**
* Compute an array's average of its values
*
* @param values Values to be considered
* @return The average of all values
*/
double getAverage(int[] values) {
...
return ...;
} No. 94
Implementing getAverage(...).
|
Q: |
Implement getAverage(...) from Figure 208, “Passing an anonymous array to a method ”. |
