OOP Class7

esse quam videri
Revision as of 17:08, 8 March 2006 by Jeff (talk | contribs) (Polymorphism)
Jump to: navigation, search


Fancy Arrays

Arrays

Regular Array objects are like list collections

Arrays are groups of variables of the same type

Syntax
        type [] identifier

single dimension arrays

<csharp>string [] aryNames = new string[5];

aryNames [0] = "Feta"; aryNames [1] = "Colby"; aryNames [2] = "Gruyere"; aryNames [3] = "Edam"; aryNames [4] = "Colby";</csharp>

Arrays are actually objects and support various methods.

  • GetValue
  • IndexOf
  • LastIndexOf
  • SetValue
  • Reverse
  • Sort


GetValue

<csharp>arrayGetValue.InnerHtml += aryNames.GetValue(1).ToString();</csharp>

=="Colby"

IndexOf


<csharp>arrayIndexOf.InnerHtml += Array.IndexOf(aryNames, "Colby");</csharp>

==1

LastIndexOf

<csharp>arrayLastIndexOf.InnerHtml += Array.LastIndexOf(aryNames, "Colby");</csharp>

==4

SetValue <csharp>

   aryNames.SetValue("Gouda", 1);
   arraySetValue.InnerHtml += aryNames.GetValue(1).ToString();</csharp>

Now Array(1) == "Gouda"

Reverse

Reverse reverses the array

<csharp>Array.Reverse(aryNames);</csharp>

The Reversed array looks like Reverse

0 Colby
1 Edam
2 Gruyere
3 Gouda
4 Feta

Sort

The Sort method sort the array. Arrays are sorted accourding to how objects compare to each other usually implemented using the IComparer interface

<csharp>Array.Sort(aryNames);</csharp>

The Sorted Array List Looks like

0 Colby
1 Edam
2 Feta
3 Gouda
4 Gruyere



Pros and Cons of working with arrays pros

  • East to use
  • Fast to alter
  • Flast to iterate though
  • Specific type of elements ( single type)

cons

  • Fixed size
  • Insterting is difficult

Collections

Collections are groups of objects. types of collections

   * set - no index
   * list - has index
   * map - has key/value pair

Set is like storing a bunch of objects in a bag. The order they are removed from the bag has nothing to do with the order they are removed. Set collections do not have a unique identifier.

List types of collections have an integer for an indexer. This gives them a unique identifier and an order.

Map types also have an index but it is not necessarily an integer. It could be anything unique.

ArrayList

create an arraylist

<csharp>ArrayList myArrayList = new ArrayList();</csharp>

add and element or two <csharp> myArrayList.Add("Feta"); myArrayList.Add("Colby"); myArrayList.Add("Gruyere"); myArrayList.Add("Edam"); myArrayList.Add("Colby"); </csharp> This produces and Array list like

Feta
Colby
Gruyere
Edam
Colby

Insert an element

<csharp>myArrayList.Insert(1,"Gouda");</csharp>

Now our ArrayList Looks like

Feta
Gouda
Colby
Gruyere
Edam
Colby

Remove an element

<csharp>//remove by index myArrayList.RemoveAt(1); //remove by data myArrayList.Remove("Colby"); //removes first occurance of Colby </csharp>

Now our Array List looks like

Feta
Gruyere
Edam
Colby

Pros and con of ArrayList Pros

  • No fixed size
  • Insert and Remove

Cons

  • Slower than arrays
  • Inefficient with memory (when the array size exceeds the upper bound .NET doubles the size of the array.

Polymorphism

Arrays and Collections of objects allow for polymorphism.

foreach

<csharp>foreach (string n in aryNames) {

aryDropDown.Items.Add(n);

}</csharp>

Visual Studio 2005

Motorvehicle Diagram