cmsc 150 multi-dimensional arrays

21
CMSC 150 MULTI-DIMENSIONAL ARRAYS CS 150: Mon 27 Feb 2012

Upload: lahela

Post on 22-Feb-2016

26 views

Category:

Documents


0 download

DESCRIPTION

CMSC 150 multi-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. Motivation. pixel. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: CMSC 150 multi-dimensional Arrays

CMSC 150MULTI-DIMENSIONAL ARRAYS

CS 150: Mon 27 Feb 2012

Page 2: CMSC 150 multi-dimensional Arrays

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

Page 3: CMSC 150 multi-dimensional Arrays

Motivation

Page 4: CMSC 150 multi-dimensional Arrays

Motivationpixel

Page 5: CMSC 150 multi-dimensional Arrays

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];

Page 6: CMSC 150 multi-dimensional Arrays

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

Page 7: CMSC 150 multi-dimensional Arrays

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]

Page 8: CMSC 150 multi-dimensional Arrays

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

Page 9: CMSC 150 multi-dimensional Arrays

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]

Page 10: CMSC 150 multi-dimensional Arrays

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]

Page 11: CMSC 150 multi-dimensional Arrays

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]

Page 12: CMSC 150 multi-dimensional Arrays

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

Page 13: CMSC 150 multi-dimensional Arrays

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

Page 14: CMSC 150 multi-dimensional Arrays

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

Page 15: CMSC 150 multi-dimensional Arrays

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

Page 16: CMSC 150 multi-dimensional Arrays

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

Page 17: CMSC 150 multi-dimensional Arrays

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

Page 18: CMSC 150 multi-dimensional Arrays

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

Page 19: CMSC 150 multi-dimensional Arrays

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); }}

Page 20: CMSC 150 multi-dimensional Arrays

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++; } }}

Page 21: CMSC 150 multi-dimensional Arrays

Let’s Try Some…

Photo by Gary Mueller, from www.allaboutbirds.org (Cornell Laboratory of Ornithology)