COMPUTER PROGRAMMING-2 JAVA
CHAPTER-7
ARRAYS & COLLECTIONS
Java provides a data structure, the array, which stores a fixed-size sequential collection of
elements of the same type. An array is used to store a collection of data, but it is often more
useful to think of an array as a collection of variables of the same type.
Instead of declaring individual variables, such as number0, number1, ..., and number99, you
declare one array variable such as numbers and use numbers[0], numbers[1], and ...,
numbers[99] to represent individual variables.
This tutorial introduces how to declare array variables, create arrays, and process arrays
using indexed variables.
DECLARING ARRAY VARIABLES
To use an array in a program, you must declare a variable to reference the array, and you
must specify the type of array the variable can reference. Here is the syntax for declaring an
array variable
SYNTAX
dataType[] arrayRefVar; // preferred way.
or
dataType arrayRefVar[]; // works but not preferred way.
Note The style dataType[] arrayRefVar is preferred. The style dataType arrayRefVar[]
comes from the C/C++ language and was adopted in Java to accommodate C/C++
programmers.
EXAMPLE
The following code snippets are examples of this syntax
double[] myList; // preferred way.
or
double myList[]; // works but not preferred way.
CREATING ARRAYS
You can create an array by using the new operator with the following syntax
1 Mrs.Anamika Raj,Lecturer,KKU
COMPUTER PROGRAMMING-2 JAVA
SYNTAX
arrayRefVar = new dataType[arraySize];
The above statement does two things
It creates an array using new dataType[arraySize].
It assigns the reference of the newly created array to the variable arrayRefVar.
Declaring an array variable, creating an array, and assigning the reference of the array to
the variable can be combined in one statement, as shown below
dataType[] arrayRefVar = new dataType[arraySize];
Alternatively you can create arrays as follows
dataType[] arrayRefVar = {value0, value1, ..., valuek};
The array elements are accessed through the index. Array indices are 0-based; that is, they
start from 0 to arrayRefVar.length-1.
EXAMPLE
Following statement declares an array variable, myList, creates an array of 10 elements of
double type and assigns its reference to myList
double[] myList = new double[10];
Following picture represents array myList. Here, myList holds ten double values and the
indices are from 0 to 9.
2 Mrs.Anamika Raj,Lecturer,KKU
COMPUTER PROGRAMMING-2 JAVA
ARRAY OF OBJECTS
Following is the definition of Student class.
class Student {
int marks;
}
An array of objects is created just like an array of primitive type data items in the following
way.
Student[] studentArray = new Student[7];
The above statement creates the array which can hold references to seven Student objects.
MULTI DIMENSIONAL AR RAYS
We have represented an array type using a pair of brackets. Two dimensional arrays are in
a similar way represented by two such pairs of brackets and an N dimensional array is
represented by using N such pairs of brackets. The following statement creates a two
dimensional array of integers, which contains 3 arrays containing 4 integers each.
int[][] a=new int[3][4];
Elements of this array are accessed by specifying the index numbers, here two of them. The
first representing the array number and the second representing the index element in that
particular array.
a[0][2] = 34;
A two dimensional airy can also be initialised using an array initialiser in the following way.
This paints a better picture of a 2D array as an array of arrays.
int[][] d = { { 1,5,74,2}, {4,68,45,65},{5,0,34,54}}:
THE FOREACH LOOPS
JDK 1.5 introduced a new for loop known as foreach loop or enhanced for loop, which
enables you to traverse the complete array sequentially without using an index variable.
EXAMPLE
3 Mrs.Anamika Raj,Lecturer,KKU
COMPUTER PROGRAMMING-2 JAVA
PASSING ARRAYS TO METHODS
Just as you can pass primitive type values to methods, you can also pass arrays to methods.
For example, the following method displays the elements in an int array
EXAMPLE
public static void printArray(int[] array) {
for (int i = 0; i < array.length; i++) {
System.out.print(array[i] + " ");
}
}
You can invoke it by passing an array. For example, the following statement invokes the
printArray method to display 3, 1, 2, 6, 4, and 2
EXAMPLE
printArray(new int[]{3, 1, 2, 6, 4, 2});
LISTS & MAPS
LIST INTERFACE
A List is a ordered collection that can contain duplicate values. It provides three general
purpose implementations.
1) ArrayList
2) LinkedList
3) Vector
1) ARRAYLIST
ArrayList is said to be the best performing list implementation in normal conditions. In
simple words we can say that ArrayList is a expendable array of values or objects.
package com.beingjavaguys.core;
import java.util.ArrayList;
public class ArrayListImplementation {
public static void main(String args[]){
4 Mrs.Anamika Raj,Lecturer,KKU
COMPUTER PROGRAMMING-2 JAVA
ArrayList<String> arrayList = new ArrayList<String>();
arrayList.add("element1");
arrayList.add("element2");
arrayList.add("element3");
System.out.println(arrayList);
arrayList.remove("element3");
System.out.println(arrayList);
}
}
2) LINKEDLIST
Linked list is a bit slower than ArrayList but it performs better in certain conditions.
3) VECTOR
Vector is also a growable array of objects, but unlike ArrayList Vector is thread safe in
nature.
Map Interface
A Map interface provides key-value pairs, map objects contains keys associated with an
value. Maps can not contain duplicate keys and one key can be mapped to atmost one
element. In Java Map interface provides three general purpose implementations.
1) HashMap- A HashMap is a HashTable implementation of Map interface, unlike
HashTable it contains null keys and values. HashMap does not guarantees that the order of
the objects will remain same over the time.
2) TreeMap- A TreeMap provides red-black tree based implementation of Map interface.
3) LinkedHashMap- It is HashTable and LinkedList implementation of Map interface.
LinkedHashMap has a double-linkedList running through all its elements.
5 Mrs.Anamika Raj,Lecturer,KKU