2014년 10월 29일 수요일

28. [C#,닷넷컬렉션]ArrayList,Quque,HashTable(큐,해시테이블,Collection,닷넷자료구조)[닷넷C#교육/ADO.NET강좌/ASP.NET교육잘하는곳/C#,ASP.NET교육추천/닷넷실무교육/.NET,C#/ADO.NET교육/닷넷학원/ASP.NET실무교육]

28. [C#,닷넷컬렉션]ArrayList,Quque,HashTable(큐,해시테이블,Collection,닷넷자료구조)
 
대부분의 응용프로그램에서 개체의 그룹을 만들어 사용하는 경우들이 있는데 개체의 배열을 만들거나 개체의 컬렉션을 만들어 개체를 그룹화할 수 있다배열의 경우 개체를 고정된 수만큼 만들고 이러한 개체로 작업할 때 상당히 유용하며 컬렉션을 사용하면 배열보다는 더 유연하게 개체 그룹에 대해 작업할 수 있다.
:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /> 
배열과 달리 컬렉션에서는 응용 프로그램의 요구 변화에 따라 사용하는 개체의 그룹이 동적으로 증가하거나 줄어들 수 있으며 일부 컬렉션의 경우 키를 사용하여 개체를 빨리 검색할 수 있다.
 
 
1.     System.Collections.ArrayList
 
크기가 동적으로 증가하는 배열을 사용하도록 IList 인터페이스를 구현
 
 
using System;
using System.Collections;
public class SamplesArrayList
{
 
    public static void Main()
    {
        ArrayList onj = new ArrayList();
        onj.Add("Onj");
        onj.Add("OracleJava");
        onj.Add("Community");
 
        Console.WriteLine("onj List");
        Console.WriteLine("    Count:    {0}", onj.Count);
        Console.WriteLine("    Capacity: {0}", onj.Capacity);
 
        Console.Write(" onj  Values:");
        PrintValues(onj);
 
        ArrayList onj2 = (ArrayList)onj.Clone();
        Console.Write(" onj2 Values:");
        PrintValues(onj2);
 
    }
 
    public static void PrintValues(IEnumerable myList)
    {
        foreach (Object obj in myList)
            Console.Write("   {0}", obj);
        Console.WriteLine();
    }
 
}
 
 
 
[결과]
 
onj List
    Count:    3
    Capacity: 4
 onj  Values:   Onj   OracleJava   Community
 onj2 Values:   Onj   OracleJava   Community
 
 
 
2.     System.Collections.Quque
 
큐는 FIFO(First In First Out) 형태의 자료구조를 구현한 클래스로 메시지를 받은 순서대로 저장하는 데 유용하다. System.Collections.Quque 클래스는 큐를 순환 배열로 구현했는데 Queue 에 저장되는 개체들은 한쪽 끝에서 삽입되고 다른 쪽 끝에서 제거된다배열이나 리스트가 데이터에 자유롭게 접근하는 반면 큐는 입력은 오직 뒤(rear), 출력은 오직 앞(front)에서만 일어난다널 값을 허용하고 중복을 허용하는 자료구조 이다.
 
 
using System;
 using System.Collections;
 public class SamplesQueue  {
 
    public static void Main()  {
 
       // Creates and initializes a new Queue.
       Queue myQ = new Queue();
       myQ.Enqueue("Hello");
       myQ.Enqueue("World");
       myQ.Enqueue("!");
 
       // Displays the properties and values of the Queue.
       Console.WriteLine( "myQ" );
       Console.WriteLine( "\tCount:    {0}", myQ.Count );
       Console.Write( "\tValues:" );
       PrintValues( myQ );
    }
 
 
    public static void PrintValues( IEnumerable myCollection )  {
       foreach ( Object obj in myCollection )
          Console.Write( "    {0}", obj );
       Console.WriteLine();
    }
 }
 /*
 This code produces the following output.
 
 myQ
     Count:    3
     Values:    Hello    World    !
*/
 
 
3.     System.Collections.HashTable
 
(key), (value) 쌍으로 된 자료를 다루는 데 용이하다배열과 차이점이라면  배열이 자료에 접근하기 위해 인덱스를 사용하지만 해시테이블은 데이터베이스처럼 키 값을 사용한다는 것이다키 값은 어떤 형식도 가능하며 탐색 속고 또한 좋다. ArrayList에서 데이터 검색을 위해 이진탐색을 수행하거나 리스트를 순회하지만 HashTable은 키를 이용해 데이터를 빠르게 검색한다그러므로 키는 NULL값을 가질 수 없지만 값은 NULL일 수 있다.
 
using System;
using System.Collections;
 
class Example
{
    public static void Main()
    {
 
        Hashtable onj = new Hashtable();
 
        // Add some elements to the hash table. There are no
        // duplicate keys, but some of the values are duplicates.
        onj.Add("name""오라클자바커뮤니티프로그래밍");
        onj.Add("tel""02-851-4790");
        onj.Add("url""www.oraclejavacommunity.com");
        onj.Add("addr""서울 구로 디지털단지");
 
 
        try
        {
            onj.Add("tel""IT 114");
        }
        catch
        {
            Console.WriteLine("키값 중복...");
        }
 
        // The Item property is the default property, so you
        // can omit its name when accessing elements.
        Console.WriteLine("For key = \"name\", value = {0}.", onj["name"]);
 
        onj["name"] = "오라클자바커뮤니티";
        Console.WriteLine("For key = \"name\", value = {0}.", onj["name"]);
 
 
        if (!onj.ContainsKey("who"))
        {
            onj.Add("who""ONJSYSTEMS");
            Console.WriteLine("Value added for key = \"who\": {0}", onj["who"]);
        }
 
        // When you use foreach to enumerate hash table elements,
        // the elements are retrieved as KeyValuePair objects.
        Console.WriteLine();
        foreach (DictionaryEntry d in onj)
        {
            Console.WriteLine("Key = {0}, Value = {1}", d.Key, d.Value);
        }
    }
}
 
 
[결과]
 
키값 중복...
For key = "name", value = 오라클자바커뮤니티프로그래밍.
For key = "name", value = 오라클자바커뮤니티.
Value added for key = "who": ONJSYSTEMS
 
Key = url, Value = www.oraclejavacommunity.com
Key = addr, Value = 서울 구로 디지털단지
Key = tel, Value = 02-851-4790
Key = who, Value = ONJSYSTEMS
Key = name, Value = 오라클자바커뮤니티


 기업100%환급/오라클/자바/스프링/안드로이드/닷넷C#/웹퍼블리싱… 오라클자바…12-272303
 [채용예정교육]오라클자바개발잘하는신입뽑기2개월과정,교육전취…오라클자바…12-111660
53 [평일주간100%환급]Spring,JAVA,JSP,안드로이드,C#닷넷,SQL,튜닝… 오라클자바…03-151466
52 [주말]C#,ASP.NET마스터 오라클자바…01-311574
51 [기업100%환급,평일주간]SQL기초에서스키마오브젝트,PLSQL,힌트… 오라클자바…01-311941
50 [기업100%환급]개발자를위한스프링,마이바티스,하이버네이트(스… 오라클자바…01-311250
49 [평일주간,평일야간,주말]Spring,MyBatis,Hibernate개발자과정 오라클자바…01-191555
48 [평일야간,주말]안드로이드개발자과정(Android기초실무) 오라클자바…01-111376
47 [평일야간,주말주간,주말야간]JAVA,Network&JSP&Spring,MyBatis,… 오라클자바…01-031926
46 기업100%환급/오라클/자바/스프링/안드로이드/닷넷C#/웹퍼블리싱… 오라클자바…12-272303
45 [기업100%환급]자바웹개발기초과정(JAVA,JDBC,JSP,Servlet,Aajx,… 오라클자바…12-191649
44 [평일주간야간, 주말]웹퍼블리싱 마스터(HTML5,CSS3,jQUERY,AJAX… 오라클자바…12-141617
43 [채용예정교육]오라클자바개발잘하는신입뽑기2개월과정,교육전취… 오라클자바…12-111660
42 [기업100%환급]웹퍼블리싱마스터(HTML5,CSS3,JavaScript,jQUERY) 오라클자바…12-091325
41 [평일야간]닷넷(C#,Network,ADO.NET,ASP.NET)마스터 오라클자바…12-011551
40 [기업100%환급]자바기초&안드로이드개발자과정(Android전액환급… 오라클자바…12-011733
39 [평일야간,주말]SQL기초에서실무까지(SQL기초,PLSQL,힌트,튜닝) 오라클자바…12-011193

댓글 없음:

댓글 쓰기