Any datatype in java can create an array, we put empty square brackets after the datatype
We provide a variable name for it
We create a “new” array and we must set a size before we used it
Examples of Arrays
// integer array initializedint[] numbers1 =newint[5]; // Line 1// alterative way initializedint numbers2[] =newint[5]; // Line 2// Arrays set to values right awayint[] myArray = {1,2,3,4,5};// A string arrayString[] myArray1 = {"A","B","C","D"};
Implicit array must have its size (maximum number of items) declared. (Line 1 and 2)
This arrays currently have empty spots; they do not have values
Use { ... } to explicitly create an array.
Explicit array (arrays that already contain values) do not need to specify the size.
Array Requirements
The values in an Array must be all the same datatype
The number of total items in the Array must be set prior and it cannot be changed after
We can access individual items in a list by indexing,
index value starts at zero (0)
A value at a certain index can be changed which makes Arrays mutable.
Mutability
Mutable means that the object has the ability to change without recreation.
An immutable data type can only be changed by having their variables reassigned to a new value.
Example: Strings are Immutable
String name = "Jim";
name = "Tim"; // this is a valid code
name[0] = "J";
// Only changing a single part of a String is impossible
Arrays are Mutable
When an array wants to change a value at a certain index, we do not need to recreate the array, but we can just update the value at the index.
// Array Mutation Exampleint[] numbers = {3,1,4,1,5,9};numbers[2] =9;// numbers now contains --> {3,1,9,1,5,9}// Value at index 2 got updated.
Traversal: Way to look at each individual Values
// While Loop Traversal of an Arrayint[] nums = {3,1,4,1,5,9};int i =0;while (i <nums.length) {System.out.println("nums at "+ i +" is: "+ nums[i]); i++; }
num at 0 is 3
num at 1 is 1
num at 2 is 4
num at 3 is 1
num at 4 is 5
num at 5 is 9
Explanation
All arrays have .length property to refer to the size of an array
Indexing (grabbing a value at a location) always starts at 0 zero. It can be also said that the last item of an array is located at length - 1 index.
A similar traversal can be done with a for loop
// Same Traversal with a for loopint[] nums = {3,1,4,1,5,9};for (int i =0; i <nums.length; i++) {System.out.println("nums at "+ i +" is: "+ nums[i]);}
String Object to a Character Array
// ExampleString text ="Hello!"char[] example =text.toCharArray()// example now contains {'H', 'e', 'l', 'l', 'o', '!'}
In Java,.toCharArray() method converts the given string into a sequence of characters. The returned array length is equal to the length of the string.
Character Array to String Object
// Examplechar[] example2 = {'W','o','r','l','d'}String text2 =newString(example2);// text2 is now "World"
By creating a new string similar to creating a new scanner and providing a Character Array as an input, you can create a new string.
Printing an Array
We cannot simply print an array within System.out.println(). We must convert it to a string first.
Using Arrays.toString()
// Example using Arrays.toString()importjava.util.Arrays; // 1. Import Your Arrays LibraryclassMain {publicstaticvoidmain(String[] args) {int[] nums = {3,1,4,1,5,9}; // Explicit integer arrayString str_nums =Arrays.toString(nums); // Converting int array to stringString hello ="Hello, World!";char[] an_array =hello.toCharArray(); // converting hello to character arrayString str_array =Arrays.toString(an_array); // Making a printable char arraySystem.out.println("Our nums: "+ str_nums);System.out.println("Our char array: "+ str_array); }}
Output:
Our nums: [3, 1, 4, 1, 5, 9]
Our char array: [H, e, l, l, o, ,, , W, o, r, l, d, !]
String to String Array using .split()
// .split() --> Splitting a string based on a patternString digits ="1,2,3,4,5,6,7";String[] converted =digits.split(",");System.out.println(Arrays.toString(converted));// converted now contains --> [1, 2, 3, 4, 5, 6, 7]// Note that converted has string based digits ... "2" not integer 2String word ="Apple Banana Cucumber";String[] basket =word.split(" ");System.out.println(Arrays.toString(basket));// basket now contains --> [Apple, Banana, Cucumber]
Purpose of .split() is to locate separating patterns such as commas or whitespace in a string to obtain a collection of data.