Download presentation
Presentation is loading. Please wait.
Published byStephanie Rodgers Modified over 8 years ago
1
Arrays 1 ● Java programming language provides a data structure called the array (מערך ), which can store a fixed-size sequential collection of elements of the same type. ● Arrays are widely used within Java programming for different purposes such as sorting, searching and etc.
2
Problems with simple variables Hard to give up values high number of variables. Complex to sort a high number of variables by value. Impossible to use loops. Example problem: Read one hundred numbers, compute their average, and find out how many numbers are above the average. We can use an array instead of a variables. 2
3
Array definition An array ( מערך ) is a collection of variables of the same data type, and the collection is assigned a name. Array can be declared for any type. In Java an array is an object ( עצם ). Each variable within the collection is called an array element. An array element is identified by combining the array name and a unique index ( אינדקס ). An index is an integer from zero to 1 minus the maximum number of elements in the array. An array of size N is indexed from 0 to N – 1. Array examples: –list of students’ marks –series of numbers entered by user –vectors –matrices 3
4
Array indexing In Java,array indexes always begin at zero. The array myList has 10 values, indexed from 0 to 9. The i-th element of array myList is specified by myList[i-1]. 4
5
Declaring array variables ● In Java arrays are objects ( עצם ). To create an array, the reference (הפניה ) to the array must be declared. ● The array can be created using the new operator, which allocates memory space to store values. Examples: double [ ] myList = new double [ 10 ]; The variable myList is declared to be an array of 10 real numbers whose type is written as double[ ]. int [ ] studGrades = new int [ 85 ]; The variable studGrades is declared to be an array of 85 integer numbers whose type is written as int[ ]. Note: once an array is declared to be a certain size, the number of values it can hold cannot be changed. 5
6
Default values and initialization ● When an array is created, its elements are assigned the default value of : 0 for the numeric primitive data types '\u0000' for char data types False for boolean data types. ● Declaring, creating, initializing in one step: double [ ] myList1 = { 1.9, 2.9, 3.4, 3.5 }; Note: Don’t use new operator if you plan to initialize the array. 6
7
Accessing array elements ● To access a value in an array, we use the name of array followed by the index in square brackets. int [ ] arr = { 69,61,73,19,37 }; arr[ 2 ] = 95; // initial value was 73 ● Array indexes are integers and we can use integer expression to specify the index. int a = 7, b = 2,c = -3; arr[ a/b ] = 71; // initial value was 19 System.out.println( arr[a + c] ); // output value is 37 NOTE :when accessing array elements, be careful to ensure that the index stays within the array bounds. 7
8
The length of an array In order to get the number of elements in an array, you can use the length attribute of an array. The length attribute of an array returns the size of the array ( number of elements). It can be used by writing arrayName.length For example : int a = myList.length; // a = 10 int b = studGrade.length; // b = 85 8
9
Array as Java object 9 ● Java array is a container object that holds a fixed number of values of a single type. ● The array declaration allocates only enough space for a reference to an array but doesn't create the actual array object. For example: int[ ] num = new int[5]; reference
10
The Assignment Operators and Arrays 10 int[ ] listA = { 5, 10, 15, 20, 25, 30, 35 }; int[ ] listB = new int[7];
11
The Assignment Operators and Arrays 11 Arrays after assignment statement ListB = ListA;
12
Array example 1 The next program section reads N integers into an array and then reverses them and prints. N value reads during the program execution. 515103-271 Before revers 71-2103155 After revers 12
13
Example 1 - solution System.out.print( "Enter the number of array elements : “ ); int [ ] arr = new int [reader.nextInt()]; for (int i = 0; i < arr.length; i++) { System.out.print("Enter number "+ (i+1) + " integer : “ ); arr[i] = reader.nextInt(); } // for for (int i = 0; i < arr.length/2; i++) { int temp = arr[i]; arr[i] = arr[arr.length – i - 1]; arr[arr.length-i-1] = temp; } // for System.out.println(" The numbers in revers order : "); for (int i = 0; i <arr.length; i++) System.out.println(arr[i]); number of array elements reads during the program running It is often convenient to use for loops when handling array, because the number of its elements is constant. 13
14
Array example 2 14 This program reads N integer number sequence and builds an array. The program builds an array from a sequence ( some numbers can appear twice or more in the sequence but appears only once in the array ). For example: N = 9 and input sequence is 9, 9, 5, 4, 4, 4, 1, 1, 7 876543210 000071459 arr Note: maximum array’s elements is N, because each number can appears only once in the sequence.
15
Example 2 - solution 15 static final int N = 9; public static void main (String[] args) { int [ ] arr = new int[N]; int j = 1; // array index int num; // input variable arr[0] = reader.nextInt(); for (int i = 0; i < N - 1; i++) { num = reader.nextInt(); if(num != arr[j-1]) { arr[j] = num; j++; } //if } // for for(int i = 0; i < j; i++) System.out.println(arr[i]); } // main final keyword when used with a variable makes it a constant.
16
Array example 3 This program section reads 10 integers into an array, finds the max and min values of array elements and prints them. static final int N=10; public static void main (String[] args) { int [] arr = new int[N]; for (int i = 0; i < N; i++) arr[i] = reader.nextInt(); int max = arr[0],min = arr[0]; for (int i = 1; i < N; i++) { max = (arr[i]>max) ? arr[i] : max; min = (arr[i]<min) ? arr[i] : min; } //for System.out.println(" The max element is : "+max); System.out.println(" The min element is : "+min); } //void main If a variable is marked as final then the value of that variable cannot be changed i.e final keyword when used with a variable makes it a constant. if (arr[i]) > max max = arr[i]; else max = max; 16
17
Array example 4 17 This program calculates the number of different values in array of integers. public static void main (String[] args) { int a[ ] = { 5, 5, 2, 9, 3, 2, 5, 9, 3, 5 }; // array of integers int i, j; // loop counters int count = 1; // accumulator for(i =1; i < a.length; i++) { for(j = 0; j < i; j++) if(a[j] == a[i]) break; if(j == i) count++; } // for System.out.println(“The number of different values is : “ + count); } // main
18
Array example 4 18 public static void main (String[] args) { int a[ ] = { 5, 5, 2 }; // array of integers int i, j; // loop counters int count = 1; // accumulator for(i =1; i < a.length; i++) { for(j = 0; j < i; j++) if(a[j] == a[i]) break; if(j == i) count++; } // for System.out.println(count); } // main j == ia[ j ] == a[ i ]j < iji < 3icount 1 T1 FTT0 T2 FT0 FT1 F2 T 2 Trace table ( i < 3 only )
19
Array example 5 19 This program reads 100 letters and …? static final int N = 26; public static void main (String[] args) { int [] arr = new int[N]; int m = 0; // help variable for (int i = 0; i < N; i++) arr[i] = 0; for (int i = 0; i < 100; i++) { System.out.println(" Enter a letter: "); char ch = reader.next().charAt(0); arr[ch – ‘a’] ++; } // for for (int i = 1; i < N; i++) if(arr[i] > arr[m]) m = i; char mch = (char)(m + ’a’); System.out.println(" mch : “ + mch); } // main
20
Sorting ( מיון ) Sorting is the process of arranging a list of items in well – defined order. Sorting values of array elements is one of the basic array manipulations. Many sorting algorithms have been developed over the years. In this course we examine two sorting algorithms: selection sort (מיון בחירה) and insertion sort (מיון הכנסה). 20
21
Selection sort algorithm The selection sort algorithm selects for each position in the list the value, that should go in this position, and puts it there. 23156730 61523730 67231530 67152330 67152330 Scan starting with 23. 6 is smallest. Exchange 6 and 23 Scan starting with 15. 7 is smallest. Exchange 7 and 15 Scan starting with 23. 15 is smallest. Exchange 15 and 23 Scan starting with 23. 23 is smallest. Exchange 23 and 23 21
22
Selection sort implementation int [ ] arr = { 23,15,6,7,20 }; for(int i = 0; i < arr.length; i++) { int min_pos = i; for(int j = i+1; j < arr.length; j++) { if ( arr[j] < arr[min_pos] ) min_pos = j; int temp = arr[i]; // help variable arr[i] = arr[min_pos]; arr[min_pos] = temp; } // inner for } // outer for This program section uses a selection sort to arrange a list of integer values into ascending order ( סדר עלה ). The outer loop controls the position where the next smallest value will be stored. The inner loop finds the smallest value in the rest of the list. When the smallest value is determined, it is exchanged with the value stored at the index. The algorithm can easily be changed to put values in descending order ( סדר יורד ) by finding the largest value each time. 22
23
Insertion sort algorithm The insertion sort algorithm works by inserting each value into a previously sorted subset of the list. 39612 39612 36912 13692 12369 3 is sorted. Shift nothing. Insert 9. 3 and 9 are sorted. Shift 9 to the right. Insert 6. 3,6 and 9 are sorted. Shift 9,6 and 3 to the right. Insert 1. 1,3,6 and 9 are sorted. Shift 9,6 and 3 to the right. Insert 2. All values are sorted 23
24
Insertion sort implementation int [ ] arr = { 3,9,6,1,2 }; for (int i = 1; i < arr.length; i++) { int j = i; int a = arr[i]; while ( j > 0 && arr[ j-1] > a) { arr[ j ] = arr[ j-1]; j--; } // block while arr[ j ] = a; } // block for The inner loop compares the current insert values with values stored with lower indexes. If the current insert value is less then the value at j position, that value is shifted to the right. The outer loop controls the index in the array of the next value to be inserted. 24
25
Java searching ( ( חיפוש Searching (חיפוש) is an operation which finds the location of a given element in an array. The search is said to be successful or unsuccessful depending on whether the element that is to be searched is found or not. Definition: A key is a value that you are looking for in an array. If found, the index of the first location of the key will be returned. If not found, a value of -1 will be returned. In this course we examine two searching algorithms: - linear search (חיפוש סדרתי) - binary search (בינארי חיפוש). 25
26
Linear search The simplest type of search is the liner (sequential) search. In the liner search, each element of the array is compared to the key, in the order it appears in the array, until the desired element is found. System.out.println( “enter search key”); int num = reader.nextInt(); // input key value boolean flag = false; for( int i = 0; i < arr.length; i++) { if (arr [i] == num) { flag = true; break; } // if } // for if (flag ) System.out.println(num + " is at position “ + i); else System.out.println(num + " not found "); This searching type can be applied to a sorted or an unsorted list. Searching in case of unsorted list starts from the 0 th element and continues until the element is found or the end of list is reached. 26
27
Linear search in sorted array int i; // loop counter System.out.println( “enter search key” ); int num = reader.nextInt(); // input key value for(i=0; i = arr[i]; i++) { if (arr [i] == num) { System.out.println(num + " is at position "+i); break; } } //for if (i==0 || i==arr.length || num>arr[i] ) System.out.println(num + " not found "); In case of sorted list we breaks the loop if the key value founded. 27
28
Binary search example 1 Index Find 6 in {-1, 5, 6, 18, 19, 25, 46, 78, 102, 114 }. low index = 0, high index = 9. Step 1 (middle element is 19 > 6): middle index = ( 0 + 9 ) / 2 = 4 low index = 0, high index = 4 - 1=3 Step 2 (middle element is 5 < 6): middle index = (0 + 3 ) / 2 = 1 low index =0 +1, high index = 3 Step 3 (middle element is 6 == 6): middle index= (1 + 3 ) / 2 = 2 searched element is found ! 0123456789 28
29
Binary search example 2 index Find 103 in {-1, 5, 6, 18, 19, 25, 46, 78, 102, 114}. low index = 0, high index = 9. Step 1 (middle element is 19 <103): middle index = ( 0 + 9 ) / 2 = 4 low index =4+1, high index = 9 Step 2 (middle element is 78 < 103): middle index = (5 + 9 ) / 2 = 7 low index =7 +1, high index = 9 Step 3 (middle element is 102 <103): middle index= (8 + 9 ) / 2 = 8 low index =8 +1, high index = 9 Step 4 (middle element is 114 >103): middle index= (9 + 9 ) / 2 = 9 low index =9, high index = 9 – 1 = 8 low index > high index : searched value is absent ! 0123456789 29
30
Binary search algorithm 1. Get the middle element; 2. If the middle element equals to the searched value, the algorithm stops; 3. Otherwise, two cases are possible: –searched value is less, than the middle element. In this case, go to the step 1 for the part of the array, before middle element. –searched value is greater, than the middle element. In this case, go to the step 1 for the part of the array, after middle element. Now we should define, when iterations should stop. First case is when searched element is found. Second one is when sub-array has no elements. In this case, we can conclude, that searched value isn't present in the array. 30
31
Binary search implementation int [ ] arr = { -1,5,6,18,19,25,46,78,102,114 }; int i = 0,h = arr.length; // low and high array indexes System.out.pirnt ("enter search key => "); int num = reader.nextInt(); // input key value while (i < h) { int mid = (i + h) / 2; // Compute mid point. if (num < arr[mid]) h = mid; else if (num > arr[mid]) i = mid+1; else { System.out.println( "found in "+mid+" position“ ); break; } } //while if ( i >= h ) System.out.println(num + " not found “ ); 31
32
32
33
Strings) ( מחרוזות Java string is a sequence of characters. They are objects of type String. Once a String object is created it cannot be changed. Basic string operations: String st = “Hello,word”; String c1 = “color red”, c2, c3 =“color green”; String bl = “ ”; // one character string String day = reader.next(); System.out.println(“ The day is : “ + day); String[ ] days ={ “Sunday”, “Monday”, “Thursday” }; Like array, every character in the string has its index, but we can’t access it directly !. 01234 5678 colorred index 33 Note: double quotations
34
String methods 1 1.string.length(); returns the length of this string. String palindrome = "Dot saw I was Tod"; int len = palindrome.length(); System.out.println( "String Length is : " + len ); 2.Concatenating Strings ( + ) returns a new string that is string1 with string2 added to it at the end. String string1 = "saw I was "; System.out.println( "Dot " + string1 + "Tod“ ); 3. string.charAt(index); returns the character located at the String's specified index. String st = “Welcome to Java"; char result = st.charAt(11); System.out.println(result); This would produce String Length is : 17 This would produce Dot saw I was Tod This would produce following result : J 34
35
String methods 2 4. string1.compareTo(sryring2) - Compares two strings lexicographically: - The result is zero if the strings are equal. - The result is a negative integer if string1 lexicographically precedes the string2 string. - The result is a positive integer if string1 lexicographically follows the string2 string. We cannot just compare strings contents by simple if statement : String st1 = “Hello”; String st2 = “Hello”; if(st1==st2) { … } because st1 and st2 are memory addresses of st1 and st2. Hello Hello st1 st2 35
36
compareTo method - cont. Characters in Java are based on Unicode character set, which defines an ordering of all possible characters that can be used. The compareTo method can be used to determine the relative ( lexicographic ) order of strings. For example: String st1 = “AARBNML”, st2 = “AARZK”; int x=st1.compareTo(st2); // x = - 24: 0066 - 0090 36 0123456 AARBNML 01234 AARZK st1 st2
37
compareTo method - examples For example: String str1 = "Strings are immutable"; String str2 = "Strings are immutable"; String str3 = "Integers are not immutable"; int result = str1.compareTo( str2 ); System.out.println(result); result = str2.compareTo( str3 ); System.out.println(result); result = str3.compareTo( str1 ); System.out.println(result ); This produces following result: 0 10 -10 37
38
String methods 3 5. string.substring ( index ) returns a new string that is a substring of the string. The substring begins with the character at the specified index and extends to the end of this string. String st1 = “abcdefg”; String st2 = st1.substring(3); // st2 = “defg” String st3 = st1.substring(6); // st3 = “g” 6. string1.indexOf(string2) returns the index within string1 of the first occurrence of the substring2. If it does not occur as a substring, -1 is returned. String st1 = “abcdefg”, st2 = “cd”,st3 = “abc”; int p1 = st1.indexOf(st2); // p1= 2 int p2 = st1.indexOf(st3); // p2 = 0 int p3 = st1.indexOf(“xy”); // p3 = -1 38
39
String methods 4 7. string1.indexOf(string2, ind) returns the index within string1 of the first occurrence of the substring2 from the ind place. If it does not occur as a substring from ind place, -1 is returned. String st1 = “abcdefg”; int p1 = st1.indexOf(“cd”,5); // p1= -1 int p2 = st1.indexOf (“cd”,1); // p2 = 2 int p3 = st1.indexOf(“ab”,3); // p3 = -1 8. string.substring ( startIndex,endIndex ) returns a new string that is a substring of the string. The substring begins with the character at the specified startIndex and extends to the endIndex (but not including). String st1 = “abcdefg”; String st2 = st1.substring(3,6); // st2 = “def” String st3 = st1.substring(2,5); // st3 = “cde” 39
40
String methods 5 9. string1.lastIndexOf(string2) returns the index within string1 of the last occurrence of the substring2. If it does not occur as as substring, -1 is returned. String st1 = “abcdeabfg”; int p1 = st1.lastIndexOf(“ab”); // p1= 5 int p2 = st1.lastIndexOf (“abc”); // p2 = 0 int p3 = st1.lastIndexOf(“xyz”); // p3 = -1 10. string.replace(oldChar, newChar) returns new string resulting from replacing all occurrences of oldChar in this string with newChar. String s1 = “abaabcas”; String s2 = s1.replace(‘a’, ‘*’); // s2 = “*b**bc*s” 40
41
Empty string String in Java is considered empty if its length is zero. Empty String is represented by String literal “”. For example: String str1 = “”; // empty string String with white space are not considered as empty String in Java. String str2 = “ “; // five characters string We often needs to check if String is empty or not. There are two ways to find if String is empty or not. 1.Checking if String is empty by using length() Java method : if(str1.length() == 0) …. 2. Checking if String is empty by using boolean type isEmpty() Java method : if( str1.isEmpty() ) … 41
42
Empty string - example public class EmptyStringDemo { public static void main(String[ ] args) { String str = "tutorialspoint"; /* prints length of string str */ System.out.println("length of string = " + str.length()); /* checks if the string str is empty or not */ System.out.println("is this string empty? = " + str.isEmpty()); } // main } // EmptyString Demo 42 This will produce the following result : length of string = 14 is this string empty? = false
43
String methods - example 1 int words = 0; // words counter int i = 0; // loop counter String snc = "Welcome to Java course."; do { if( snc.charAt(i) == ' ') words++; i++; } while( i< snc.length( ) ); System.out.println( "The number of words is: "+ (++words)); This program section reads the sentences,calculates and prints it word’s numbers. ? This would produce 4 43
44
String methods - example 2 44 This program section reads the string and tests it. If the string is palindrome, the program prints “YES”, otherwise “NO”. public static void main(String[] args) { boolean flag = true; // help variable String str; // input string System.out.println(“Enter the string”); str = reader.next(); int size = str.length(); for(int i = 0; i <size/2 && flag; i++) if(str.charAt(i) != str.charAt( size – 1 – i) flag = false; if(flag) System.out.println(“YES”); else System.out.println(“NO”); } 01234 abcba Size = 5
45
String methods - example 3 45 This program reads the string and builds the array of all characters from the input string which appears only one time. For example: input string = "abcbdefdfffgh" output array is : hgeca b - 2 times d - 2 times f - 4 times
46
example 3 solution 46 public static void main(String[] args) { String st = reader.next(); int i, j, k; // loop counters boolean flag; // help variable int len = str.length(); char[] helpArray = new char[len]; // help array for(i = 0;i < len;i++) helpArray[i] = str.charAt(i); for(i = 0; i < len-1; i++) { for(j = i+1,flag = false; j < len; j++) if(helpArray[i] == helpArray[j]) { for(k = j ;k < len-1; k++) helpArray[k] = helpArray[k+1]; flag = true; j--; len--; } // if
47
example 3 solution, cont. 47 if( flag ) { for(k = i ;k <len-1; k++) helpArray[k] = helpArray[k+1]; i--; len--; } // if(flag) } // outer for char[ ] finArr = new char[len]; // creating output array for(i = 0;i< len;i++) finArr[i] = helpArray[i]; /* printing output array */ for(i = 0;i< len;i++) System.out.print (helpArray[i]); System.out.println(); } // main
48
Exam question example 48 כתוב תכנית הקולטת מחרוזת של טקסט ומדפיסה מחרוזת חדשה המכילה את אותו טקסט כאשר:
49
Exam question - solution String s = reader.next(); String fixStr = ""; for(int i = 0; i < s.length(); i++) { if (s.charAt(i) == '.' || s.charAt(i) == ',') { /* Remove spaces before point or comma */ for (int j = i-1; j >= 0 && s.charAt(j) == ' '; j--) fixStr = fixStr.substring(0,fixStr.length() - 1); fixStr += s.charAt(i) + " "; /* Remove redundant spaces after point or comma */ while ( i+1 < s.length() && s.charAt(i+1) == ' ') i++; } // if else fixStr += s.charAt(i); } // for /* Remove redundant characters after the last point */ for (int i = fixStr.length() - 1; i >= 0 && fixStr.charAt(i) == ' '; i--) fixStr = fixStr.substring(0,fixStr.length() - 1); System.out.println( “ The new string is :” + fixStr); 49
50
Two - dimensional arrays Java, as with most languages, supports multi-dimensional arrays - 1-dimensional, 2-dimensional, 3-dimensional,... In practice most arrays are one-dimensional, and two-dimensional. 2-dimensional arrays ( 2D array) are usually represented with a row-column "spreadsheet" style. Two-dimensional arrays are usually visualized as a matrix, with rows and columns. Assume we have an array, arr, with two rows and four columns. int [][] arr = new int[2][4]; // Two rows and four columns 0123 0 3415105-43 1345-738866 Column index Row index 50
51
Two - dimensional arrays 51 A 2D Array in JAVA is really an Array of Arrays: Assume we have an array : int [ ][ ] nums = new int[5][4]; 1. create the single reference nums (yellow square) int [ ][ ] nums; 2. create the array of references (blue squares) nums = new int[5][ ]; 3. this create the second level of arrays (red squares) for (int i = 0; i < 5 ; i++) nums[ i ] = new int[4]; // create arrays of integers The above is really equivalent to a 3- step process :
52
Two - dimensional arrays 52 ● A 2 - dimensional array in Java can have different numbers of elements in different rows. In other words: a 2-dimensional array in Java is made up with many rows of 1- dimensional arrays. For example: NOTE : We will only discuss and use rectangular 2-dimensional arrays in this course.
53
Declaring, Creating and Initializing You can also use an array initializer to declare, create and initialize a two-dimensional array. For example : int [ ][ ] array = new int[4][3]; array[0][0] = 1; array[0][1] = 2; array[0][2] = 3; array[1][0] = 4; array[1][1] = 5; array[1][2] = 6; array[2][0] = 7; array[2][1] = 8; array[2][2] = 9; array[3][0] = 10; array[3][1] = 11; array[3][2] = 12; int [ ][ ] array = { {1, 2, 3}, {4, 5, 6}, {7, 8, 9}, {10, 11, 12} }; Same as static final int ROW = 4; static final int COL = 3; int array = new int [ ROW ][ COL ]; for (int i = 0; i < ROW; i++) for (int j = 0; j < COL; j++) arr[i][ j ] = reader.nextInt(); Two-dimensional arrays are almost always processed with nested for loops. The two index variables are often called i and j. 53
54
Lengths of Two-dimensional arrays int[ ][ ] x = new int[3][4]; for (int i = 0; i < x.length; i++) { for (int j = 0; j < x[ i ].length; j++) System.out.print ( “ “+x[ i ][ j ]); System.out.println ( “ “); } // for You can get the size of each dimension with the length attribute. This is the most general style. 54
55
Lengths of Two-dimensional arrays 55 ● If a is a 2- dimensional array then: a[i] is a 1- dimensional array. In other words: a 2- dimensional array in Java is made up with many rows of 1-dimensional arrays. ● The variable a[i].length contains the number of columns in row i.
56
Lengths of Two-dimensional arrays, example. 56 This program section calculates and prints the sum of each column of a 2D rectangular matrix. int sum; // sum of column elements for (int col = 0; col < matrix[0].length; col++) { sum = 0; for (int row = 0; row < matrix.length; row++) sum = sum + matrix[row][col]; System.out.println("Sum of column " + (col + 1) + " = " + sum); { // outer for
57
Lengths of Two-dimensional arrays, example. public static void main(String[ ] args) { String[ ][ ] strarray = { {"this","is","the","first","row"}, {"this","is","the","second","row"}, {"this","is","the","third","row"} }; for(int i = 0; i < strarray.length; i++) { for(int j = 0; j < strarray[ i ].length; j++) System.out.print(strarray[ i ][ j ]+" "); System.out.println(); } // outer for } // main 57 this is the first row this is the second row this is the third row This would produce :
58
Lengths of Two-dimensional arrays, example. 58 This program section calculates and prints the maximum element of each row in a 2D matrix. for ( int row = 0; row < matrix.length; row++) { largest = matrix[row][0]; for (int col = 1; col < matrix[row].length col++) if (largest < matrix[row][col]) largest = matrix[row][col]; System.out.println("The largest element of row " + (row + 1) + " = " + largest); { // outer for
59
Two - dimensional array example 1 3093 772 1066-15 4854 This program section checks if the diagonal’s elements of square matrix are equal. Minor diagonal Main diagonal int [][] mat = {{3,0,9,3},{-1,7,7,2}, {10,6,6,-15},{4,8,5,4}}; boolean flag = true; // help variable int i = 0; // loop counter while ( i < mat.length && flag) { if ( mat[ i ][ i ] != mat[ i ][mat.length - i - 1] ) flag = false; i++; } // while if ( flag ) System.out.println(“Yes"); else System.out.println(“No"); imat[i][i]mat[i][4-i-1] 033 177 266 344 mat.length = 4 59
60
Two - dimensional array example 2 60 This program section transposes the integer square matrix. public static void main(String[ ] args) { System.out.print ("Enter array size: "); int size = reader.nextInt(); // size=3 int[ ][ ] a = new int[size][size]; for (int r = 0; r < a.length; r++) for (int c = 0; c < a[0].length; c++) a[r][c] = reader.nextInt(); int startc = 1; for (int r = 0; r < a.length; r++) { for (int c = startc; c < a[0].length; c++) { int temp = a[r][c]; a[r][c] = a[c][r]; a[c][r] = temp; } // inner loop startc++; } // outer loop } // main Original array: 6 7 8 4 3 1 2 9 5 Transposed array: 6 4 2 7 3 9 8 1 5
61
Matrix multiplication 61 Typical applications in science and engineering involve implementing various mathematical operations with matrix,for example matrix multiplication: Note: the number of columns in the A matrix m equals the number of rows in the matrix B. Square matrix
62
Matrix multiplication, cont. 62 static final int N = 3; // square matrix double[ ][ ] c = new double[N][N]; for (int i = 0; i < N; i++) { for (int j = 0; j < N; j++) { for (int k = 0; k < N; k++) c[i][j] + = a[i][k] * b[k][j]; } // for j } // for i
63
Puzzle 63
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.