02 Handout 1 PDF - Collections and Generics
Document Details
Uploaded by Deleted User
STI
Tags
Summary
This document provides an overview of collections and generics in .NET Framework. Topics covered include ArrayList, Hashtable, SortedList, Stack, and Queue, along with their properties, methods, and practical examples using C# code.
Full Transcript
IT1811 Collections and Generics Collections In.NET Framework, there is a group of objects that provides a standard set of types for...
IT1811 Collections and Generics Collections In.NET Framework, there is a group of objects that provides a standard set of types for storing and managing collections of objects. This group of objects is called collections, which contains lists, linked lists, dictionaries, and arrays to manage collections of objects. Two (2) Types of Collections Standard collections – These are found in the System.Collections namespace. Generic collections – These are found in the System.Collections.Generic namespace. Classes of the System.Collections Namespace ArrayList - This is a collections class that is known for an ordered collection of objects. This ArrayList is not the same as an array that is static in size. It is known as dynamic since items can be added and removed from the specified index location. See Figures 1 and 2 for the sample program and output. Figure 1. ArrayList (Code) Figure 2. ArrayList (Output) Hashtable This class stores key or value pairs where the key represents the value in the collection. When accessing the values in Hashtable, the key must be specified. See Figure 3 for the syntax and Figure 4 for the output. 02 Handout 1 *Property of STI [email protected] Page 1 of 8 IT1811 Figure 3. Hashtable (Code) Figure 4. Hashtable Output SortedList This class is a combination of ArrayList and Hashtable. It stores key or value pairs where the key values sort values. To access the values in SortedList class, the key or index value must be specified. See Figure 5 for the example program of SortedList. In this class, there are some properties that can be used: Capacity – It gets or sets the capacity of the SortedList. Count – It gets the count of the number of elements in the SortedList. Item – It gets and sets the value associated with a specific key in the SortedList. Keys – These carry the keys in the SortedList. Values – These carry the values in the SortedList. There are few methods that are used in the SortedList: 02 Handout 1 *Property of STI [email protected] Page 2 of 8 IT1811 void Add(object key, object value) – It adds an item with the specified key and value into the SortedList. void Clear() – It is used to remove all the items in the SortedList. bool ContainsKey(object key) – If the SortedList contains the specified key, then it will return the Boolean value true. bool ContainsValue(object value) – If the SortedList contains the specified value, then it will return the Boolean value true. object GetByIndex(int index) – This method returns the value of the specified index. object GetKey(int index) – This method returns the key of the specified index. void Remove(object key) – In the SortedList, a key that is specified will remove its element. void RemoveAt(int index) – It is an index that is specified will remove its element in the SortedList. Figure 5. SortedList Using Console Stack This represents a Last In, First Out (LIFO) collection of objects. When inserting and removing objects from the stack, it uses push and pop operations. See Figures 6 and 7 for the program and output. Figure 6. Stack (Code) 02 Handout 1 *Property of STI [email protected] Page 3 of 8 IT1811 Figure 7. Stack (Output) Queue This class represents a First In, First Out (FIFO) collection of objects. Adding and removing objects from the queue class uses an enqueue and dequeue operations. See Figures 8 and 9 for the program and output. Figure 8. Queue (Code) Figure 9. Queue (Output) Interfaces in the System.Collections Namespace IEnumerable – It is an interface that allows you to loop through elements in a collection. 02 Handout 1 *Property of STI [email protected] Page 4 of 8 IT1811 ICollection – It is an interface that allows you to determine the number of elements in a collections and copy them in a simple array type. IDictionary – It is an interface that provides a list of elements that are accessible via a key or value rather than an index. Generics This makes the code reusable across different types by creating a template that contains placeholder types. Genericsallows specifying the data types of the programming elements when they are actually used in the program. The System.Collections.Generic namespace contains several generic collection classes. When using generics, it allows creating collections like linked lists, hashtables, stacks, and queues that operate on an item of any data type. Generic Collections It avoids creation of custom collections for each type in the application. The generic collections are the generic equivalents for the System.Collections classes found in the System.Collections.Generic namespace. Below are the generic collections found in System.Collections.Generic namespace: List - It is a generic collection that provides an efficient and dynamically allocated array, which is commonly used to store a list of duplicate objects. The List class can grow and shrink with the number of objects. - The syntax below is the format for creating a List collection. See Figure 10 for sample program and Figure 11 for the output. List variableName = new List(); - There are few methods that be used in List Collection, see Table 1 for the descriptions of each method. Method Description Add() This method is used to add items and is placed to the end of a list. The elementscan be accessed by calling its index value. Example: //Adds a string "Rose" nameOfStud.Add("Rose"); //Display the element by index number Console.WriteLine(nameOfStud); Remove() This method removes the specified item from the list of object. If in case the list contains duplicate data, the method removes the first matching instance. Example: nameOfStud.Remove("Mike"); IndexOf() This method is used to check the specified element in the specified list object.Itwill return its index value if it is found; if not, it will return the value of -1. Example: Console.WriteLine(nameOfStud.IndexOf("Rose")); Sort() This method is used to sort the element in the list object. Example: nameOfStud.Sort(); Table 1. List collections methods Source: Learning Object-Oriented Programming in C# 5.0, 2015, p. 389. 02 Handout 1 *Property of STI [email protected] Page 5 of 8 IT1811 Figure 10. Generic list (Code) Figure 11. Generic list (Output) Queue - It is a generic collection that represents a First In, First Out (FIFO) collection of objects. - There are a few methods that can be used in Queue generic collection. See Table 2 for the descriptions of each method. - The syntax below defines a generic queue. See Figure 12 for sample program and Figure 13 for the output: Queue ageQueue = new Queue(); Method Description Enqueue() This method adds an element to the end of queue. Example: ageQueue.Enqueue(18); 02 Handout 1 *Property of STI [email protected] Page 6 of 8 IT1811 Method Description Peek() This will return the element at the beginning of the queue without removing it. Example: ageQueue.Peek(); Dequeue() This method removes and returns the value at the beginning of the queue. Example: int getValue = ageQueue.Dequeue(); Table 2. Queue collections methods Source: Learning Object-Oriented Programming in C# 5.0, 2015, p.395. Figure 12. Generic Queue (Code) Figure 13. Generic Queue (Output) Stack - This generic collection represents the Last In, First Out (LIFO) collection of instances. - There are methods that can be used with Stack generic collection. See Table 3 for the descriptions of each method. - The syntax below defines the generic stack. See Figure 14 for sample program and Figure 15 for the output: Stack ageStack = new Stack(20); 02 Handout 1 *Property of STI [email protected] Page 7 of 8 IT1811 Method Description Push() This method adds an element at the top in the stack. Example: ageStack.Push(18); Peek() This will return the element at the top of the stack without removing it. Example: int getValue = ageStack.Peek(); Pop() This method removes and returns the value at the top of the stack. Example: int getValue = ageStack.Pop(); Table 3. Stack Collections Methods Source: Learning Object-Oriented Programming in C# 5.0, 2015, p. 396. Figure 14. Generic Stack (Code) Figure 15. Generic Stack (Output) REFERENCES: Deitel, P. and Deitel, H. (2015). Visual C# 2012 how to program (5 th ed.). USA: Pearson Education, Inc. Gaddis, T. (2016). Starting out with Visual C# (4 th ed.). USA: Pearson Education, Inc. Harwani, B. (2015). Learning object-oriented programming in C# 5.0. USA: Cengage Learning PTR. Miles, R. (2016). Begin to code with C#. Redmond Washington: Microsoft Press. Doyle, B. (2015). C# programming: from problem analysis to program design (5 th ed.). Boston, MA: Cengage Learning. 02 Handout 1 *Property of STI [email protected] Page 8 of 8