1 / 39

Arrays, Array Class, Array List

Arrays, Array Class, Array List. Chapter Objectives. Learn array basics Declare arrays and perform compile-time initialization of array elements Access elements of an array Become familiar with methods of the Array class. Chapter Objectives ( continued ).

rrasmussen
Télécharger la présentation

Arrays, Array Class, Array List

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Arrays, Array Class, Array List

  2. Chapter Objectives • Learn array basics • Declare arrays and perform compile-time initialization of array elements • Access elements of an array • Become familiar with methods of the Array class

  3. Chapter Objectives (continued) • Write methods that use arrays as parameters • Write classes that include arrays as members and instantiate user-defined array objects • Create two-dimensional arrays including rectangular and jagged types • Use multidimensional arrays

  4. Chapter Objectives (continued) • Use the ArrayList class to create dynamic lists • Learn about the predefined methods of the string class • Work through a programming example that illustrates the chapter’s concepts

  5. Array Basics • Data structure that may contain any number of variables • Variables must be of same type • Single identifier given to entire structure • Individual variables are called elements • Elements accessed through an index • Index also called subscript • Elements are sometimes referred to as indexed or subscripted variables

  6. Array Basics (continued) • Arrays are objects of System.Array class • Array class includes methods and properties • Methods for creating, manipulating, searching, and sorting arrays • Create an array in the same way you instantiate an object of a user-defined class • Use the new operator • Specify number of individual elements

  7. Array Declaration • Format for creating an array type [ ] identifier = new type [integral value]; • Type can be any predefined types like int or string, or a class that you create in C# • Integral value is the number of elements • Length or size of the array • Can be a constant literal, a variable, or an expression that produces an integral value

  8. Array Declaration (continued) Creation of an array

  9. Array Declaration (continued) • Array identifier, name, references first element • Contains address where score[0] is located • First index for all arrays is 0 • Last element of all arrays is always referenced by an index with a value of the length of the array minus one • Can declare an array without instantiating it • The general form of the declaration is: type [ ] identifier;

  10. Array Declaration (continued) Declaration of an array

  11. Array Declaration (continued) • If you declare array with no values to reference, 2nd step required– dimension the array • General form of the second step is: identifier = new type [integral value]; • Examples constint size = 15; string [ ] lastName = newstring [25]; double [ ] cost = newdouble [1000]; double [ ] temperature = newdouble [size]; int [ ] score; score = newint [size + 15]; Two steps

  12. Array Initializers • Compile-time initialization • General form of initialization follows: type[ ] identifier = new type[ ] {value1, value2, …valueN}; • Values are separated by commas • Values must be assignment compatible to the element type • Implicit conversion from int to double • Declare and initialize elements in one step

  13. Array Initializers (continued) • Array length determined by number of initialization values placed inside curly braces • Examples int [] anArray = {100, 200, 400, 600}; char [ ] grade = newchar[ ] { ‘A’, ‘B’, ‘C’, ‘D’, ‘F’}; double [ ] depth = new double [2] {2.5, 3}; • No length specifier is required

  14. Array Initializers (continued) Methods of creating and initializing arrays at compile time

  15. Array Access • Specify which element to access by suffixing the identifier with an index enclosed in square brackets score[0] = 100; • Length– special properties of Array class • Last valid index is always the length of the array minus one

  16. Array Access (continued) Try to access the array using an index value larger than the array length minus one, a nonintegral index value, or a negative index value – Run-time error Index out of range exception

  17. Example : Create and Use an Array classAverageDiff { staticvoid Main() { int total = 0; doubleavg, distance; stringinValue; int [ ] score = new int[10]; for (inti = 0; i < score.Length; i++) { Console.Write("Enter Score{0}: ", i + 1); inValue = Console.ReadLine( ); score[i] = Convert.ToInt32(inValue); } for (inti = 0; i < score.Length; i++) { total += score[i]; } avg = total / score.Length; Console.WriteLine("Average: {0}", avg); Console.WriteLine("Score\tDist. from Avg."); for (inti = 0; i < score.Length; i++) { distance = Math.Abs((avg - score[i])); Console.WriteLine("{0}\t\t{1}", score[i], distance); } } //end of main } //end of class

  18. Example : Create and Use an Array (continued) Output from AverageDiff example

  19. Using foreach with Arrays • Used to iterate through an array • Read-only access • General format foreach (type identifier in expression) statement; • Identifier is the iteration variable • Expression is the array • Type should match the array type

  20. Using foreach with Arrays (continued) Displays red, blue, and green on separate lines string [ ] color = {"red", "green", "blue"}; foreach (string val in color) Console.WriteLine (val); • Iteration variable, val represents a different array element with each loop iteration • No need to increment a counter (for an index)

  21. Array Class • Base array class • All languages that target Common Language Runtime • More power is available with minimal programming

  22. Arrays as Method Parameters • Can send arrays as arguments to methods • Heading for method that includes array as a parameter modifiers returnType identifier (type [ ] arrayIdentifier...) • Open and closed square brackets are required • Length or size of the array is not included • Example void DisplayArrayContents (double [ ] anArray)

  23. Pass by Reference • Arrays are reference variables • No copy is made of the contents • Array identifier memory location does not contain a value, but rather an address for the first element • Actual call to the method sends the address • Call does not include the array size • Call does not include the square brackets • Example DisplayArrayContents (waterDepth);

  24. Example : Using Arrays as Method Arguments classStaticMethods { staticvoid Main( ) { double [ ] waterDepth={45,16.8,190,0.8}; double [ ] w = new Double [20]; DisplayOutput(waterDepth, "waterDepth Array\n\n" ); Array.Copy(waterDepth, 2, w, 0, 4); Array.Sort (w); DisplayOutput(w, "Array w Sorted\n\n" ); Array.Reverse(w); DisplayOutput(w, "Array w Reversed\n"); } public staticvoidDisplayOutput(double [ ] anArray, stringmsg) { foreach(doublewValinanArray) if (wVal > 0) Console.WriteLine(wVal.ToString()); } }

  25. Output

  26. Two-Dimensional Arrays • Two-dimensional and other multidimensional arrays follow same guidelines as one-dimensional • Two kinds of two-dimensional arrays • Rectangular • Visualized as a table divided into rows and columns • Jagged or ragged

  27. Two-Dimensional Representation Two-dimensional structure

  28. Two-Dimensional Arrays (continued) • Declaration format type [ , ] identifier = new type [integral value, integral value]; • Two integral values are required for a two-dimensional array • Number of rows listed first • Data values placed in array must be of the same base type • Example (create a 7x3 matrix) • int [ , ] calories = newint[7, 3];

  29. Two-Dimensional Arrays (continued) calories references address of calories[0,0] Two-dimensional calories array

  30. Two-Dimensional Arrays (continued) • Length property gets total number of elements in all dimensions Console.WriteLine(calories.Length); // Returns 21 • GetLength( ) – returns the number of rows or columns • GetLength(0) returns number of rows • GetLength(1) returns number of columns Console.WriteLine(calories.GetLength(1)); //Display 3 (columns) Console.WriteLine(calories.GetLength(0)); //Display 7 (rows) Console.WriteLine(calories.Rank); // returns 2 (dimensions)

  31. Jagged Arrays • Rectangular arrays always have a rectangular shape, like a table; jagged arrays do not • Also called ‘arrays of arrays’ • Example int[ ] [ ] anArray = newint[4] [ ]; anArray [0] = new int[ ] {100, 200}; anArray [1] = new int[ ] {11, 22, 37}; anArray [2] = new int[ ] {16, 72, 83, 99, 106}; anArray [3] = new int[ ] {1, 2, 3, 4};

  32. Multidimensional Arrays • Limited only by your imagination as far as the number of dimensions • Format for creating three-dimensional array type [ , , ] identifier = new type [integral value, integral value, integral value]; • Example (rectangular) int [ , , ] calories = new int [4 ,7 ,3]; (4 week; 7 days; 3 meals) Allocates storage for 84 elements

  33. Multidimensional Arrays (continued) Figure Three-dimensional array Upper bounds on the indexes are 3, 6, 2

  34. ArrayList Class • Limitations of traditional array • Cannot change the size or length of an array after it is created • ArrayList class facilitates creating list like structure, BUT it can dynamically increase or decrease in length • Similar to vector class found in other languages • Includes large number of predefined methods

  35. ArrayList Class (continued)

  36. ArrayList Class (continued)

  37. Chapter Summary • Array declaration • Compile-time initialization • Accessing elements • Array and ArrayList class methods • Arrays as parameters to methods • Multidimensional arrays

More Related