Friday 8 April 2016

கலெக்சன்ஸ் சிஷார்ப்



நிரலாக்க மொழிகளை பொருத்தவரை கலெக்சன்ஸ் என்பது ஒன்றுக்கு மேற்பட்ட

டேட்டாக்களின் தொகுப்பாகும்.அர்ரே என்பது simple ஆன டேட்டா தொகுப்பாகும்.


 அர்ரே நிறைகள்:
1.    
எந்த அர்ரேயின் உறுப்புகளையும் random access முறையில் எளிதாக அணுகலாம்.

 அர்ரேயில் உள்ள குறைகள்:

1. இவற்றில் எல்லா டேட்டாக்களும் ஓரே டேட்டா டைப் ஆக இருக்க வேண்டும்.


2. இவை நிலையான static collection ஆகும்.அதாவது இயக்க நேரத்தில் இதன் size ஆனதை 

மாற்ற முடியாது.(எனினும் தற்போதைய விசுவல் ஸ்டுடியோ வெர்ஷன்களில் Array.Resize 

என்கின்ற லைப்ரரி மெத்தட் மூலம் இந்த குறை நிவர்த்தி செய்யப்பட்டுள்ளது)



     அர்ரேயின் இந்த குறைகளைப்போக்கவே மற்ற கலெக்சன்ஸ் ஆன  LinkedList,ArrayList 

போன்ற கலெக்சன்ஸ் போன்றவை சி ஷார்ப்பில் அறிமுகப்படுத்தப்பட்டன.


 பொதுவாக கலெக்சன்ஸ் System.Collections மற்றும் System.collection.Generic நேம்ஸ்பேசில் 

இருந்து பெறப்படுகின்றது.இந்த கட்டுரையில் generic அல்லாத மற்ற Syatem.Collections என்ற 

நேம்ஸ்பேசிலிருந்து பெறப்படும் கலெக்சன்ஸ்  பற்றி மட்டும் பார்ப்போம்.





அவையாவன:

1.   Stack

2.   Queue

3.   ArrayList

4.   SortedList

5.   Hashtable

இந்த கலெக்சன்ஸ்  அணைத்துமே IEnumerable என்கின்ற லைப்ரரி இண்டர்ஃபேசைimplement செய்கின்றன.

ஸ்டேக்(stack):


ஸ்டேக் என்பது ஒன்றன் மேல் ஒன்றாய் அடுக்கி வைக்கப்படும் உறுப்புகளை 

கொண்டது.இதன் உறுப்புகள் last in first out முறையில் பெறப்படுகின்றன.இதன் ஆரம்ப 

நிலை capacity 10 ஆகும்(capacity என்பது அந்த கலெக்சனில் எத்தனை உறுப்புகள் 

சேமிக்கப் படலாம் என்பதை குறிக்கின்றன.)ஸ்டேக்குகள் சிஸ்டம் சாப்ட்வேர்,கம்பைலர் 

,செயற்கை நுண்ணறிவு போன்ற நிரல்களில் பயன்படுத்தப்படுகின்றன.


 ஸ்டேக் பின் வருமாறு அறிவிக்கப்படுகின்றது.


 Stack <stack-name>=new Stack();




புதிதாய் ஒரு உறுப்பை சேர்க்க Push என்கின்ற library method பயன்படுகின்றது. Pop 

என்கின்ற மெத்தட் கடைசியாக add செய்யப்பட்ட உறுப்பை நீக்கவும் அதை 

காண்பிக்கவும் பயன்படுகின்றது.Peek என்கின்ற மெத்தட் கடைசியாக add செய்யப்பட்ட 

உறுப்பை காண்பிக்க பயன்படுகின்றது. Count என்கின்ற property மொத்தம் எத்தனை 

உறுப்புகள் உள்ளது என்பதை காண்பிக்க பயன்படுகின்றது.








using System;


using System.Collections;


namespace ConsoleApplication5

{

    class MyProg

    {

        static void Main(string[] args)


        {

            Stack lang = new Stack();


            //insert the following elements



            lang.Push("c#");

            lang.Push("java");

            lang.Push("php");



            Console.WriteLine("display all elements");



            foreach (object i in lang)

            {

                Console.WriteLine("{0}", i);

            }



            Console.WriteLine("remove element php");

           

            lang.Pop();



            Console.WriteLine("now displays top element");

          

            Console.WriteLine ("last element is {0}",lang.Peek());



            Console.ReadLine();



        }

    }

}



Output:

display all elements

php

java

c#

remove element php

now displays top element

last element is java






மேலே உள்ள நிரலில் எல்லா உறுப்புகளையும் display செய்யும் பொழுது ரிவெர்ஸ் ஆர்டரில் உள்ளதை நோக்கவும்.காரணம் ஸ்டேக்கில் கடைசியாக சேர்க்கப்பட்டதே முதலில் அணுக முடியும்.


பின் வரும் சான்று படி ஒரு அர்ரேயையும் ஸ்டேக் ஆக மாற்றலாம்.


String fruits={“apple”,”orange”,”banana”};

Stack myStack=new Stack(fruits);

கியூ(queue)

 இதுவும் ஸ்டேக் போன்று தான் ஆனால் இது first in first out முறையில் உறுப்புகள் 
அணுகப்படுகின்றது.இது மல்டி பிராசசிங் ,மல்டி டாஸ்க்கிங்,,நெட்வொர்க் பிரிண்டிங்
 

போன்ற நிரல்களில் பயன்படுகின்றது. இதன்ஆரம்ப நிலை capacity 32 ஆகும். Enqueue 

என்கின்ற லைப்ரரி மெத்தட் புதிதாக உறுப்புகளை சேர்க்க பயன்படுகின்றது. Dequeue 

என்கின்ற லைப்ரரி மெத்தட் உறுப்புகளை நீக்க பயன்படுகின்றது.பீக் என்பது முதலில் உள்ள

 உறுப்பை காண்பிக்கப் பயன்படுகின்றது.

Queue பின் வருமாறு அறிவிக்கப்படுகின்றது.


Queue <queue name> = new Queue();



சான்று நிரல்

using System;

using System.Collections;



namespace ConsoleApplication6

{

    class Program

    {

        static void Main(string[] args)

        {

            Queue lang = new Queue();

            lang.Enqueue("c#");

            lang.Enqueue("java");

            lang.Enqueue("php");



            Console.WriteLine("total no of elements is {0}", lang.Count);



            Console.WriteLine("now displaying all the elements");



            foreach (object i in lang)

            {

                Console.WriteLine("{0}", i);

            }

            lang.Dequeue();



            Console.WriteLine("now displaying remaining elements");



            foreach (object i in lang)

            {

                Console.WriteLine("{0}", i);

            }

            Console.ReadLine();

        }

    }

}


Output:

Total no of elements is 3

Now displaying all the elements

C#

Java

php

Now displaying remaining elements

Java

php



அர்ரே லிஸ்ட்:


இது டைனமிக் அர்ரே ஆகும்.இயக்க நேரத்தில் புதிதாக உறுப்புகளை சேர்க்கவும் நீக்கவும் 

முடியும்.ArrayList.Sort என்கின்ற மெத்தட் உறுப்புகளை sort செய்யலாம்.இது பின் வருமாறு 

அறிவிக்கப் படுகின்றது.



ArrayList <ArrayList-name>=new ArrayList();




Add மெத்தட் மூலம் புதிதாய் உறுப்புகளை சேர்க்கலாம்.Remove மெத்தட் மூலம் 

உறுப்புகளை நீக்கலாம் .RemoveAt மெத்தட் மூலம் குறிப்பிட்ட இண்டெக்ஸில் உள்ள 

உறுப்புகளை நீக்கலாம்.Clear மெத்தட் மூலம் எல்லா உறுப்புகளையும் நீக்கலாம். Reverse 
மெத்தட் மூலம் ரிவர்ஸ் ஆர்டரில் சார்ட் செய்யலாம்.

சான்று நிரல்

using System;

using System.Collections;



namespace ConsoleApplication2

{

    class Program

    {

        static void Main(string[] args)

        {

             int i = 0;



            ArrayList fruits = new ArrayList();



            fruits.Add("orange");



            fruits.Add("Apple");



            fruits.Add("banana");



            fruits.Add(41);



          



            Console .WriteLine ("Shows Added Items");



            for (i = 0; i <fruits .Count ;i++)



            {



                Console .WriteLine (fruits[i].ToString());



            }



            //insert an item



            fruits.Insert(3, "Grapes");





            //remove an item



            fruits.Remove(41);



            //remove item from a specified index



            //sort itemms in an arraylist



            fruits.Sort();



            fruits.RemoveAt(3);



           Console .WriteLine ("Shows final Items the ArrayList");



            for (i = 0; i < fruits.Count; i++)



            {



               Console .WriteLine (fruits[i].ToString());



            }

            Console.ReadLine();

        }

    }

}



வெளியீடு:

Shows Added Items

Orange

Apple

banana

41

Shows final Items the ArrayList

Apple

Banana

Grapes

Hash table:

இது key value pair முறை கலெக்சன் ஆகும்.இதன் உறுப்புகள் அதன் key கொண்டு அணுகப்படுகின்றது. இதன் ஆரம்ப நிலை capacity 0 ஆகும் . உறுப்புகளை சேர்க்கும் பொழுது capacity தானாகவே கூடுகின்றது.இது பின் வருமாறு அறிவிக்கப்படுகின்றது.

Hashtable <hashtable-name>=new Hashtable();



இது key-ன் hashcode ஆனதை அடிப்படையாக கொண்டு சார்ட் செய்யபடுகின்றது.

சான்று நிரல்



using System;

using System.Collections;

using System.Linq;

using System.Text;



namespace ConsoleApplication7

{

    class Program

    {

        static void Main(string[] args)

        {

            Hashtable ht = new Hashtable();



            ht.Add("001", "chennai");

            ht.Add("002", "madurai");

            ht.Add("003", "trichy");

            ICollection key = ht.Keys;



            foreach (string k in key)

            {

                Console.WriteLine(k + ": " + ht[k]);

            }



            Console.ReadKey();

        }

    }

}





Output::

002:Madurai

001:Chennai

003:trichy



Sorted list:

இது key value pair முறை கலெக்சன் ஆகும். இதன் உறுப்புகள் இதன் key மூலம் தானாகவே சார்ட் செய்யப்படுகின்றன. Sortedlist என்பது அர்ரே மற்றும் ஹேஷ்டேபிள் ஆகியவற்றின் combination ஆகும்.இதன் உறுப்புகளை இண்டெக்ஸ் மூலம் அணுகினால் இது அர்ரேலிஸ்ட் ஆகவும்  key   கொண்டு அணுகினால் இது Hashtable ஆகவும் செயல்படுகின்றது. இதன் default capacity 16 ஆகும்.இது பின் வருமாறு அறிவிக்கப்படுகின்றது.



SortedList <Sortedlist-name>=new SortedList();



சான்று நிரல்:



using System;

using System.Collections;



namespace ConsoleApplication7

{

    class Program

    {

        static void Main(string[] args)

        {

            SortedList sl = new SortedList();



            sl.Add("001", "chennai");

            sl.Add("002", "madurai");

            sl.Add("003", "trichy");

            ICollection key = sl.Keys;



            foreach (string k in key)

            {

                Console.WriteLine(k + ": " + sl[k]);

            }



            Console.ReadKey();

        }

    }

}



Output:

001:Chennai

002:Madurai

003:trichy
                                       


                               -முத்து கார்த்திகேயன்,மதுரை

No comments:

Post a Comment