Jump to a key chapter
Understanding Java Arrays
As you progress through your journey in computer science, you'll encounter different tools and concepts that help build complex programs and systems. Today, the focus of our discussion lies on Java Arrays.What are Java Arrays: A Basic Introduction
In Java, an Array refers to a powerful data structure that can store multiple values of the same data type. Unlike variables that store a single value, Arrays enable the storage of multiple values, making data handling in large quantities practicable.An Array is essentially a collection of elements (values or variables) that are accessed through computed indices. The size of an Array is established when the Array is created and remains constant thereafter.
Java Arrays Principles
Creating and using Java Arrays involves some important principles.// Declare an array int[] anArray; // allocate memory for 10 integers anArray = new int[10];Here's a list of some key points you need to remember:
- Java Array is an object that holds a fixed number of values of a single type.
- The length of an Array is established when the array is created.
- Array indices are zero-based: the first element's index is 0, the second element's index is 1, etc.
Java Arrays Methods
Java offers different methods to manipulate arrays. Let's take a closer look at two of them using a table.Method | Description |
public static int binarySearch(Object[] a, Object key) | Searches the specified array of the specified value using the binary search algorithm. |
public static boolean equals(long[] a, long[] a2) | Returns true if the two specified arrays of longs are equal to one another. |
Main Features of Java Arrays
Java Arrays have some significant features that enhance their utility in programming. These include:- They can store data of the same type in sequential memory locations.
- They are objects in Java.
- Length is established at creation and does not change.
- Array elements are accessed with their index number.
Did you know that the size of an array in Java can be determined using the length field? For example, if you have an array named Sample, 'Sample.length' would return its size.
Getting to Grips with Java Array Syntax
Delving into the syntax now, you'll further explore the realm of Java Arrays. Understanding Java Array Syntax is much like learning a new language. The more you practice and experiment, the more fluent you become.Overview of Java Array Syntax
Java Array syntax is the set of rules and conventions that dictate how Arrays in Java are written and used. It's essentially the grammar of Java Arrays, including details like the order of operations, use of semicolons, and placement of indices. To declare a Java Array, we specify the following in order: the type of elements in the Array, followed by square brackets, and the array's name:int[] myArray;To actually create or instantiate the Array, the new keyword comes into play. It lets us allocate memory for the known number of elements of a particular type:
myArray = new int[5];And to declare and instantiate in one line, Java allows you to combine the two steps:
int[] myArray = new int[5];In these examples, 'myArray' is a variable that holds an array of integers. The number in the square brackets is the size of the Array, indicating how many integers 'myArray' can hold. You can also instantiate an array with values:
int[] myArray = { 5, 10, 15, 20, 25 };In this instance, 'myArray' is an Array that holds five integers, which are given at the time of creation. The array size is implicitly set to the number of elements provided in the curly braces.
Initializing an Array in Java: Tips and Tricks
Initialising an array is primarily about setting initial values for its elements. Consider these examples:int[] myArray = new int[]{ 1,2,3,4,5,6,7,8,9,10 };Here, you have an integer array named 'myArray' initialized with 10 elements. For an array with complex elements like objects, you can initialise it as follows:
Car[] carArray = new Car[]{ new Car("Red"), new Car("Green"), new Car("Blue")};This statement initialises the `carArray` with three Car objects, each with a different colour. Also, you can initialise a multi-dimensional Array in Java, which amounts to an "array of arrays".
int[][] multiArray = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}};Here, rather than numeric indices, each inner array is contained within the outer array and possesses its own indices.
Deciphering the Java array length Property
Understanding the 'length' property of Java Arrays is pivotal. Unlike many other programming languages, arrays in Java have a built-in property called 'length' that returns the number of elements in the Array. The `length` property, as applied to arrays, may seem similar to the `length()` method used with strings, but bear in mind that they are applied to different data types (arrays and strings) and hence, their usage varies. Consider the Array below:int[] numArray = {10, 20, 30, 40, 50};If you need to find the length or size of `numArray`, use the 'length' property like so:
int size = numArray.length;The variable `size` will hold the value 5, since `numArray` contains five elements. The length property proves particularly useful when you need to iterate over an array using a loop. For instance,
for (int i = 0; i < numArray.length; i++) { System.out.println(numArray[i]); }This loop prints every element in `numArray` using the 'length' property to establish the loop's termination condition. Importantly remember, the 'length' property in Java gives the total number of slots available in the Array, not the number of slots currently filled. This feature matters particularly when dealing with arrays where all slots aren't filled, or default values are acceptable.
Delving into Specific Array Types in Java
It's essential to know that Java supports several kinds of arrays, including single-dimensional, multidimensional, and the more dynamic array lists. Today, you'll learn about the two-dimensional (or 2D) array and the ArrayList. Knowing how to work with both is vital to fully harnessing the power of Java programming.A Comprehensive Look at 2D Arrays in Java
A 2D array, also known as a matrix, can be thought of as an array of arrays. This type of array consists of a fixed number of rows and columns, and each cell is identified by its position (i.e., its row and column number). Here is an example of a 2D array with three rows and two columns:int[][] twoDArray = { {1, 2}, {3, 4}, {5, 6} };In this example, '1' is located at position 0, 0 (first row, first column), while '6' resides at position 2, 1 (third row, second column). To better illustrate, let's define commonly used terms in the context of 2D arrays:
Element: Each individual value is known as an element of the array. For instance, 1, 2, 3, 4, 5, 6 are elements.
Row: Each horizontal line of values in the matrix is referred to as a row.
Column: Each vertical line of values is usually spoken of as a column.
How to Utilise 2D Arrays in Java
Working with 2D arrays involves creating, initializing, and manipulating them. Let's start by declaring a 2D array. To declare a 2D array, you need to specify the type of the elements, followed by two pairs of square brackets, and then the array's name:int[][] my2DArray;Creating or instantiating the 2D array is another step. For example, the line below creates a 2D array of integers with 3 rows and 2 columns.
my2DArray = new int[3][2];Note: Java allows ragged arrays or arrays where each row can be of different lengths. In such cases, you only declare the number of rows, and every row can be initialised with a different number of columns. Accessing and setting values in 2D arrays involves two indices - one for the row and one for the column.
my2DArray[0][0] = 1; // sets the first element int x = my2DArray[0][0]; // retrieves the first element
`java.util.Arrays.deepToString()`: It's a handy method present in Java that converts 2D Arrays into a readable String format which is very helpful during debugging sessions.
Getting Familiar with ArrayList in Java
Popular Use Cases for ArrayList in Java
In Java, the `ArrayList` is a part of the Java Collection Framework and extends `AbstractList`. It implements the `List` interface and offers several features: - It's a **resizable-array**, meaning you can add or remove elements from it. - This dynamic nature makes ArrayList extremely popular for scenarios where the number of elements can vary during program execution. Here is an example of creating an `ArrayList` and adding elements to it:ArrayListIn this case, "Hello" is at index 0, and "World" is at index 1.myArrayList = new ArrayList (); myArrayList.add("Hello"); myArrayList.add("World");
Element: Each value inside the ArrayList is known as an element.
String element = myArrayList.get(0); // retrieves "Hello"Removing an element is just as straightforward with the `remove` method:
myArrayList.remove(0); // removes "Hello"ArrayLists become especially useful when working with large amounts of data because of methods that offer excellent functionality, such as `sort`, `contains`, and `isEmpty`. They also support iteration using loops and Iterators. Note: It's advisable to always specify the data type in the ArrayList during declaration to prevent inserting unwanted data types (This practice is known as creating a **Generic ArrayList**).
The Art of Array Manipulation in Java
Once you grasp the basics of Java Arrays, the next important step involves learning how to manipulate these arrays to solve various complex problems. This manipulation could mean sorting elements, converting the array to a string for easier debugging, or even determining an element's position. Array manipulation is a vital skill in your Java toolkit, enhancing your code's efficiency, readability, and functionality.How to Convert Java Array to String
While debugging or logging, you often need to convert your entire Java array into a string format. This format allows you to understand better what's happening inside your array at runtime. Java makes this task feasible by giving you the `java.util.Arrays.toString()` and `java.util.Arrays.deepToString()` methods for single-dimension and multi-dimension arrays, respectively. Let's start with a numerical array like below:int[] numArray = {10, 20, 30, 40, 50};For converting the above array to a String, you use the `Arrays.toString()` method.
String arrayAsString = Arrays.toString(numArray);Here, `arrayAsString` now holds the String `"[10, 20, 30, 40, 50]"`. The same can be achieved for multi-dimensional arrays using the `Arrays.deepToString()` method as the `toString()` method in such cases would produce results that aren't very readable.
int[][] multiArray = { {1, 2}, {3, 4}, {5, 6} }; String multiArrayString = Arrays.deepToString(multiArray);Here, the `multiArrayString` holds `"[ [1, 2], [3, 4], [5, 6] ]"`.
toString(): This method returns a string representation of the contents of the specified array. If the array contains other arrays as elements, they are converted to strings themselves by the `Object.toString()` method inherent in the root class `Object`.
deepToString(): This method is designed for converting multidimensional arrays to strings. If an element is a nested array, this method handles it as a deeply nested array.
Sorting Array: Steps and Processes in Java
Sorting is a common operation when working with arrays. Java makes it easy with the `java.util.Arrays.sort()` method. This method sorts primitive data types such as `int`, `char`, and `String` arrays into ascending numerical or lexicographic order. Let's start with an example:int[] unsortedArray = {5, 3, 9, 1, 6, 8, 2}; Arrays.sort(unsortedArray);Now, `unsortedArray` is `{1, 2, 3, 5, 6, 8, 9}`. For arrays of objects, you must ensure that the class of the objects implements the `Comparable` interface or provide a `Comparator` object to the `sort()` method.
Student[] studentsArray = { new Student("John", 15), new Student("Alice", 16), new Student("Bob", 14) }; Arrays.sort(studentsArray, Comparator.comparing(Student::getAge));In this example, the `studentsArray` is sorted in the ascending order of ages. The `Arrays.sort()` method uses a variation of the QuickSort algorithm called Dual-Pivot QuickSort. This algorithm is chosen for its efficient \(O(n \log(n))\) average-case time complexity. Remember, apart from ascension, Java arrays can also be sorted in descending order using the `Arrays.sort()` method in combination with the `Collections.reverseOrder()` method for object arrays. Finally, Java arrays can be sorted partially from an index to another as well, thanks to the overloaded `sort()` method.
int[] numArray = {5, 1, 6, 2, 9, 3, 8}; // Only sort elements from index 1 (inclusive) to index 5 (exclusive). Arrays.sort(numArray, 1, 5);Here, the array `numArray` becomes `{5, 1, 2, 3, 9, 6, 8}`. However, take note that only the elements from second to fourth position in the zero-indexed array are sorted while the rest of the array remains unsorted. This method is especially useful when you need to maintain portions of your array while sorting others.
sort(): This method sorts the array in ascending order. For primitive types, it sorts in numerical order, while for objects, it sorts in lexicographical order unless a `Comparator` is provided.
Putting Knowledge into Practice: Java Array Examples
Delving from theory into practical application is where the true mastery of Java Arrays begins. By working on examples, you will not only develop a strong grip on how arrays function but also enhance your problem-solving skills, a crucial tool in every programmer's arsenal.Simple Java Array Examples for Beginners
Take your first steps into the amazing world of Java Arrays through these simple exercises which will require you to utilise basic array concepts and arithmetic operations. Example 1: Creating and Printing an Arrayint[] numArray = {2, 4, 6, 8, 10}; for(int i = 0; i < numArray.length; i++){ System.out.println(numArray[i]); }This example declares, initialises, and prints the array values using a for loop. Example 2: Finding the Sum and Average of an Array
double[] numArray = {5.5, 8.5, 10.5, 15.5, 20.5}; double sum = 0.0; for(int i = 0; i < numArray.length; i++){ sum += numArray[i]; } double average = sum / numArray.length; System.out.println("Sum = " + sum); System.out.println("Average = " + average);In this example, you calculate the sum of the array elements using a loop and then the average. Here, also observe the use of a double array to accommodate integer and fractional numbers. These basic examples help familiarise you with the declaration, initialisation, and simple manipulation of arrays in Java. Moving on to the complex examples would solidify your foundation in Java arrays.
Complex Java Array Examples to Challenge Your Skills
Having seen some beginner-level tasks, it's now time to upgrade to more complex scenarios that challenge your understanding and application of Java arrays. Example 1: Finding the Largest and Smallest Numbers in an Arraydouble[] numArray = {21.2, 19.6, 37.8, 40.2, 45.6, 50.8, 60.2}; double smallest = numArray[0]; double largest = numArray[0]; for(int i = 1; i < numArray.length; i++){ if(numArray[i] > largest){ largest = numArray[i]; } else if (numArray[i] < smallest){ smallest = numArray[i]; } } System.out.println("Largest number = " + largest); System.out.println("Smallest number = " + smallest);In this example, you learn about finding the largest and smallest numbers in an array. It's an algorithmic approach where you initially assume the first element as the smallest and largest number and then compare with other elements to update accordingly. Example 2: Reversing a Java Array
int[] numArray = {1, 2, 3, 4, 5}; int[] reverseArray = new int[numArray.length]; int j = numArray.length; for (int i = 0; i < numArray.length; i++) { reverseArray[j - 1] = numArray[i]; j = j - 1; } System.out.println("Reversed array is: \n"); for(int k = 0; k < numArray.length; k++) { System.out.println(reverseArray[k]); }Here, you see how to reverse an array in Java. It's a quite interesting task, where you start by creating a new array of the same length as the original one. Then you iterate through the original array, copying its elements to the new one starting from the end.
Real-World Application of Java Arrays
Java Arrays are more than just a topic in textbooks; they have genuine, real-world applications. They are widely used in creating games, machine learning algorithms, database applications, graphic filters, and so much more. An excellent example of array usage is in image processing. Images are essentially matrices of pixel values, which are represented using 2D or 3D arrays. Each element in the array corresponds to a pixel's information (like Red, Green, Blue channels), and manipulating these values will result in changes to the actual image. This is the fundamental concept behind filters in apps like Instagram. Another scenario where Java Arrays find real-world applications is in sorting data. Regardless of the field, whether it's eCommerce websites sorting products based on price or date, databases arranging records, or in data science for algorithmic computations - sorting is all over. Java's Arrays class, `java.util.Arrays` provides numerous methods like `sort()`, `parallelSort()`, `binarySearch()`, `equals()`, `fill()`, `hashCode()`, `deepToString()`, etc., which are put to use to facilitate this sorting operation. Games, too, harness the power of Java Arrays. Board games like Chess, Checkers, Sudoku all use a 2D array to represent the game board. This way, each cell or space on the board corresponds to an array element. Whether you're just getting started in your programming journey or already have some accrued miles, the one thing that comes into play in every field is the concept of arrays. No matter the language, learning about arrays is a significant step in growing as a programmer.Java Arrays - Key takeaways
- Java Array Syntax is the set of rules and conventions that dictate how Java Arrays are written and used.
- To declare a Java Array, we specify the element type, followed by square brackets, and the array's name.
- Java arrays can be initialised in several ways, including single-line declaration and instantiation, and specifying an array's elements at the time of creation.
- In Java, arrays have a built-in property 'length' that returns the number of elements in the array.
- Java supports various kinds of arrays, such as single-dimensional, multidimensional, and the dynamic ArrayList.
- 2D arrays in Java, also known as matrices, consist of a fixed number of rows and columns.
- An ArrayList in Java is a resizable array, optimum for scenarios where the number of elements can vary during program execution.
- The `java.util.Arrays.toString()` and `java.util.Arrays.deepToString()` methods can be used to convert single-dimension and multi-dimension arrays into readable string format, respectively.
- The `java.util.Arrays.sort()` method sorts primitive data type arrays into ascending numerical or lexicographic order.
- 'sort' method is useful for sorting Java arrays; sorting can also be done partially from one index to another.
Learn with 15 Java Arrays flashcards in the free StudySmarter app
Already have an account? Log in
Frequently Asked Questions about Java Arrays
About StudySmarter
StudySmarter is a globally recognized educational technology company, offering a holistic learning platform designed for students of all ages and educational levels. Our platform provides learning support for a wide range of subjects, including STEM, Social Sciences, and Languages and also helps students to successfully master various tests and exams worldwide, such as GCSE, A Level, SAT, ACT, Abitur, and more. We offer an extensive library of learning materials, including interactive flashcards, comprehensive textbook solutions, and detailed explanations. The cutting-edge technology and tools we provide help students create their own learning materials. StudySmarter’s content is not only expert-verified but also regularly updated to ensure accuracy and relevance.
Learn more