In the previous section we introduced the concept of arrays in Java, and saw how to define and create an array and how to access the elements in the array.
In this section we’ll show a few operations that are commonly done with arrays. The examples we’ll show below can be performed/coded in different ways. Here we’re showing a way of doing things. We’ll cover other approaches in later sections and in other courses.
Iterate over the elements
One of the most common operations is to go over all elements in the array/data structure. This is done for different reasons, for example, you might want to print out the contents of an array.
One way of doing this is using a for-loop
:
In the example code run the JavaArrayOperationsApp
|
String[] words = { "An", "example", "sentence" };
for (int i = 0; i < words.length; i++) {
System.out.println("Word: " + words[i]);
}
Output:
Word: An
Word: example
Word: sentence
In this case, we’re using a standard for loop where our loop variable i
iterates from 0
until the end of the array
(i < words.length
).
Iterating over a data structure is required for many things, including:
-
Checking if an element exists or not (and where): for example, is the word
"sentence"
in the array? -
Filter elements: for example, find all words that have more than 4 characters
-
Find the minimum/maximum/average of a collection
-
Etc.
Enhanced-for loop
The approach above to iterating the elements of an array used to be the standard several years ago. With new versions of Java, new ways of iterating and operating over data structures have been developed, one of them being the enhanced-for loop.
Its syntax is:
for (Type element : collection) {
// ...
}
Given a collection
of objects (it could be an array or one of the data structures we’ll introduce in the next sections), we’re telling Java that we want to iterate one by one. The element
variable will be the element we’re processing on each iteration.
This means that we can re-write our first example as follows:
String[] words = { "An", "example", "sentence" };
for (String word : words) {
System.out.println("Word: " + word);
}
And we’d get the same output.
Since Java 8, Streams are a new way of operating on data in a more functional programming way. We won’t be covering them in this chapter as it requires us to introduce lambdas which will be covered later. |
Sorting an array
In certain cases, we might need to sort our data, either because we need to present it to the user in a specific order, or because for efficiency we need to ensure it is sorted before we process it further.
There are multiple sorting algorithms available, but one of the most common approaches is to use the utility static methods in the Arrays
class, one of them being Arrays.sort
:
int[] numbers = { 9, 5, 1 };
Arrays.sort(numbers);
for(int number : numbers) {
System.out.print(number + " ");
}
Output:
1 5 9