Published March 07, 2018 by

2 dimensional Array in java

2 dimensional Array in java

In this post, we will mainly deal with 2D array.

What is 2D Array?

• An array of arrays is known as 2D array.
• The two dimensional (2D) array in java is also known as matrix.
• A matrix can be represented as a table of rows and columns.

How to declare 2D Array?

The syntax is as follows:-

Declaration of 2D Array:-

DataType[][] arraryName = new DataType[rowCount][columnCount];
String[][] twoDArray = new String;

Here, twoDArray is a two-dimensional (2d) array. The array can hold maximum of 6 elements of type String.

Remember, Java uses zero-based indexing, that is, indexing of arrays in Java starts with 0 and not 1.

Initialization of 2D Array:-

arrayName[rowCount][columnCount] = value;
twoDArray = "Value";

Lets have a look at the following java program

public class TwoDArray
{
public static void main(String[] args)
{
String[][] arr = new String;

for (int i = 0; i < 3; i++)
{
for (int j = 0; j < 2; j++)
{
System.out.println("Value for arr["+i+"]["+j+"] :- "+ arr[i][j]);
}
}
}

}

OutPut:-

Value for arr :- UserName_1
Value for arr :- Password_1
Value for arr :- UserName_2
Value for arr :- Password_2
Value for arr :- UserName_3
Value for arr :- Password_3

When we are using 2D Array in Selenium?

We use 2D array to store data as a matrix or in the form of row and column. In order to perform Data driven testing, we use @DataProvider Annotation. We may use 2D Array to supply Test data sets to Test Method.

Refer below program to understand how exactly 2D Array has implemented in selenium to provide a data from excel file:-

public String[][] dataProvider()
{
FileInputStream file = new FileInputStream(TESTDATA_SHEET_PATH);
Workbook book = WorkbookFactory.create(file);
Sheet sheet = book.getSheet("SheetName");
String[][] data = new String[sheet.getLastRowNum()][sheet.getRow(0).getLastCellNum()];
for (int i = 0; i < sheet.getLastRowNum(); i++)
{
for (int k = 0; k < sheet.getRow(0).getLastCellNum(); k++)
{
data[i][k] = sheet.getRow(i + 1).getCell(k).toString();
System.out.println(data[i][k]);
}
}

return data;
}