cmsc 150 multi-dimensional arrays
Post on 22-Feb-2016
39 Views
Preview:
DESCRIPTION
TRANSCRIPT
CMSC 150MULTI-DIMENSIONAL ARRAYS
CS 150: Mon 27 Feb 2012
Motivation
A digital image is a two-dimensional collection of pixels (picture elements)
Each pixel has an associated color (green, brown, pink, yellow)
Taken collectively, the pixels form the image
Motivation
Motivationpixel
2D Array can be primitive or class type
Syntax: type[][] variableName; type[][] variableName = new type[numRows]
[numCols];
Examples:Color[][] pixels = new Color[100][256];boolean[][] missingTeeth = new boolean[2][16];String[][] firstLastNames = new String[NUM_STUDENTS][2];
public class 2DArrayExample{
public static void main(String[] args)
{int[][] myArray;
myArray = new int[2][3];
myArray[0][0] = 77;myArray[0][1] = 42;myArray[0][2] = 101;
myArray[1][0] = 77 + 77;myArray[1][1] = 42 + 42;myArray[1][2] = 101 + 101;
}}
In Memory myArray null
In Memory 0x12AB79
[0][0][0][1]
[0][2]
public class 2DArrayExample{
public static void main(String[] args)
{int[][] myArray;
myArray = new int[2][3];
myArray[0][0] = 77;myArray[0][1] = 42;myArray[0][2] = 101;
myArray[1][0] = 77 + 77;myArray[1][1] = 42 + 42;myArray[1][2] = 101 + 101;
}}
myArray
[1][0][1][1]
[1][2]
In Memory 0x12AB79
[0][0][0][1]
[0][2]
public class 2DArrayExample{
public static void main(String[] args)
{int[][] myArray;
myArray = new int[2][3];
myArray[0][0] = 77;myArray[0][1] = 42;myArray[0][2] = 101;
myArray[1][0] = 77 + 77;myArray[1][1] = 42 + 42;myArray[1][2] = 101 + 101;
}}
myArray
[1][0][1][1]
[1][2]
row 0
row 1
In Memory 0x12AB79
77
public class 2DArrayExample{
public static void main(String[] args)
{int[][] myArray;
myArray = new int[2][3];
myArray[0][0] = 77;myArray[0][1] = 42;myArray[0][2] = 101;
myArray[1][0] = 77 + 77;myArray[1][1] = 42 + 42;myArray[1][2] = 101 + 101;
}}
myArray
[0][0][0][1]
[0][2]
[1][0][1][1]
[1][2]
In Memory 0x12AB79
77
42
public class 2DArrayExample{
public static void main(String[] args)
{int[][] myArray;
myArray = new int[2][3];
myArray[0][0] = 77;myArray[0][1] = 42;myArray[0][2] = 101;
myArray[1][0] = 77 + 77;myArray[1][1] = 42 + 42;myArray[1][2] = 101 + 101;
}}
myArray
[0][0][0][1]
[0][2]
[1][0][1][1]
[1][2]
In Memory 0x12AB79
77
42
101
public class 2DArrayExample{
public static void main(String[] args)
{int[][] myArray;
myArray = new int[2][3];
myArray[0][0] = 77;myArray[0][1] = 42;myArray[0][2] = 101;
myArray[1][0] = 77 + 77;myArray[1][1] = 42 + 42;myArray[1][2] = 101 + 101;
}}
myArray
[0][0][0][1]
[0][2]
[1][0][1][1]
[1][2]
In Memory 0x12AB79
77
42
101
public class 2DArrayExample{
public static void main(String[] args)
{int[][] myArray;
myArray = new int[2][3];
myArray[0][0] = 77;myArray[0][1] = 42;myArray[0][2] = 101;
myArray[1][0] = 77 + 77;myArray[1][1] = 42 + 42;myArray[1][2] = 101 + 101;
}}
myArray
[0][0][0][1]
[0][2]
[1][0][1][1]
[1][2]
154
In Memory 0x12AB79
77
42
101
public class 2DArrayExample{
public static void main(String[] args)
{int[][] myArray;
myArray = new int[2][3];
myArray[0][0] = 77;myArray[0][1] = 42;myArray[0][2] = 101;
myArray[1][0] = 77 + 77;myArray[1][1] = 42 + 42;myArray[1][2] = 101 + 101;
}}
myArray
[0][0][0][1]
[0][2]
[1][0][1][1]
[1][2]
154
84
In Memory 0x12AB79
77
42
101
public class 2DArrayExample{
public static void main(String[] args)
{int[][] myArray;
myArray = new int[2][3];
myArray[0][0] = 77;myArray[0][1] = 42;myArray[0][2] = 101;
myArray[1][0] = 77 + 77;myArray[1][1] = 42 + 42;myArray[1][2] = 101 + 101;
}}
myArray
[0][0][0][1]
[0][2]
[1][0][1][1]
[1][2]
154
84
202
In Memory 0x12AB79
77
42
101
public class 2DArrayExample{
public static void main(String[] args)
{int[][] myArray;
myArray = new int[2][3];
myArray[0][0] = 77;myArray[0][1] = 42;myArray[0][2] = 101;
myArray[1][0] = 77 + 77;myArray[1][1] = 42 + 42;myArray[1][2] = 101 + 101;
}}
myArray
[0][0][0][1]
[0][2]
[1][0][1][1]
[1][2]
154
84
202
myArray[0]
myArray is an int[][]
myArray[0] is an int[]
myArray[0][0] is an int
In Memory 0x12AB79
77
42
101
public class 2DArrayExample{
public static void main(String[] args)
{int[][] myArray;
myArray = new int[2][3];
myArray[0][0] = 77;myArray[0][1] = 42;myArray[0][2] = 101;
myArray[1][0] = 77 + 77;myArray[1][1] = 42 + 42;myArray[1][2] = 101 + 101;
}}
myArray
[0][0][0][1]
[0][2]
[1][0][1][1]
[1][2]
154
84
202
myArray[1]
myArray is an int[][]
myArray[1] is an int[]
myArray[1][0] is an int
In Memory 0x12AB79
public class 2DArrayExample{ public static void main(String[] args) { String[][] strArray;
strArray = new String[2][3];
for (int i = 0; i < strArray.length; i++) { for (int j = 0; j < strArray[i].length; j++) { strArray[i][j] = new String((i+1) + “ and “); }
}}
strArray
[0][0][0][1]
[0][2]
[1][0][1][1]
[1][2]
0x33DB26
0x33DC01
0x33DD25
0x33DE04
0x33DE29
0x33DF22
In Memory 0x12AB79
public class 2DArrayExample{ public static void main(String[] args) { String[][] strArray;
strArray = new String[2][3];
for (int i = 0; i < strArray.length; i++) { for (int j = 0; j < strArray[i].length; j++) { strArray[i][j] = new String((i+1) + “ and “); }
}}
strArray
[0][0][0][1]
[0][2]
[1][0][1][1]
[1][2]
0x33DB26
0x33DC01
0x33DD25
0x33DE04
0x33DE29
0x33DF22
# rows
# cols
Managing 2D Arrays Typically use nested for loops:int[][] randomNumbers = int[1024][2048];
for (int i = 0; i < randomNumbers.length; i++){ for (int j = 0; j < randomNumbers[i].length; j++) { randomNumbers[i][j] = generator.nextInt(10000); }}
Managing 2D Arrays Typically use nested for loops:int[][] randomNumbers = int[1024][2048];
for (int i = 0; i < randomNumbers.length; i++){ for (int j = 0; j < randomNumbers[i].length; j++) { randomNumbers[i][j] = generator.nextInt(10000); }}
int numberOfOdds = 0;for (int i = 0; i < randomNumbers.length; i++){ for (int j = 0; j < randomNumbers[i].length; j++) {
if ( randomNumbers[i][j] % 2 != 0 ) { numberOfOdds++; } }}
Let’s Try Some…
Photo by Gary Mueller, from www.allaboutbirds.org (Cornell Laboratory of Ornithology)
top related