Π§ΠΈΡ‚Π°ΠΉΡ‚Π΅ ΠΊΠ½ΠΈΠ³ΠΈ ΠΎΠ½Π»Π°ΠΉΠ½ Π½Π° Bookidrom.ru! БСсплатныС ΠΊΠ½ΠΈΠ³ΠΈ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠ»ΠΈΠΊΠ΅

Π§ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎΠ½Π»Π°ΠΉΠ½ Β«C# 4.0 ΠΏΠΎΠ»Π½ΠΎΠ΅ руководство - 2011Β». Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Π° 234

Автор Π“Π΅Ρ€Π±Π΅Ρ€Ρ‚ Π¨ΠΈΠ»Π΄Ρ‚

// Π£Π΄Π°Π»ΠΈΡ‚ΡŒ элСмСнты ΠΈΠ· динамичСского массива, al.Remove('F'); al.Remove('A');

Console.WriteLine("ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ элСмСнтов: " + al.Count);

// ΠžΡ‚ΠΎΠ±Ρ€Π°Π·ΠΈΡ‚ΡŒ содСрТимоС динамичСского массива, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Ρ†ΠΈΠΊΠ» foreach. Console.Write("Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠΈΠΌΠΎΠ΅: "); foreach(char с in al)

Console.Write(с + " ");

Console.WriteLine("\n");

Console.WriteLine("Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π΅Ρ‰Π΅ 20 элСмСнтов");

// Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ количСство элСмСнтов, достаточноС для // ΠΏΡ€ΠΈΠ½ΡƒΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ массива, for (int i=0; i < 20; i++) al.Add((char)('a' + i));

Console.WriteLine("ВСкущая Π΅ΠΌΠΊΠΎΡΡ‚ΡŒ: " + al.Capacity);

Console.WriteLine("ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ элСмСнтов послС добавлСния 20 Π½ΠΎΠ²Ρ‹Ρ…: " + al.Count);

Console.Write("Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠΈΠΌΠΎΠ΅: "); foreach(char с in al)

Console.Write(с + " ");

Console.WriteLine("\n");

// Π˜Π·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ содСрТимоС динамичСского массива,

// ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ индСксированиС массива.

Console.WriteLine("Π˜Π·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Ρ‚Ρ€ΠΈ ΠΏΠ΅Ρ€Π²Ρ‹Ρ… элСмСнта"); al [0] = 1X1 ; al[1] = 'Y'; al[2] = 'Z';

Console.Write("Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠΈΠΌΠΎΠ΅: "); foreach(char с in al)

Console.Write (c + " ");

Console.WriteLine ();

Π’ΠΎΡ‚ ΠΊ ΠΊΠ°ΠΊΠΎΠΌΡƒ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρƒ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ этой ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.

Π˜ΡΡ…ΠΎΠ΄Π½ΠΎΠ΅ количСство элСмСнтов: О

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ 6 элСмСнтов ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ элСмСнтов: 6 Π’Π΅ΠΊΡƒΡ‰Π΅Π΅ содСрТимоС: Π‘ А Π• Π’ D F

Π£Π΄Π°Π»ΠΈΡ‚ΡŒ 2 элСмСнта ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ элСмСнтов: 4 Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠΈΠΌΠΎΠ΅: Π‘ Π• Π’ D

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π΅Ρ‰Π΅ 20 элСмСнтов ВСкущая Π΅ΠΌΠΊΠΎΡΡ‚ΡŒ: 32

ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ элСмСнтов послС добавлСния 20 Π½ΠΎΠ²Ρ‹Ρ…: 24 Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠΈΠΌΠΎΠ΅: CEBDabcdefghij klmnopqrst

Π˜Π·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Ρ‚Ρ€ΠΈ ΠΏΠ΅Ρ€Π²Ρ‹Ρ… элСмСнта

Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠΈΠΌΠΎΠ΅: XYZDabcdefghij klmnopqrst

Π‘ΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²ΠΊΠ° ΠΈ поиск Π² ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ Ρ‚ΠΈΠΏΠ° ArrayList

ΠšΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΡŽ Ρ‚ΠΈΠΏΠ° ArrayList ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡ‚ΡΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° Sort (). Π’ этом случаС поиск Π² отсортированной ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° BinarySearch () становится Π΅Ρ‰Π΅ Π±ΠΎΠ»Π΅Π΅ эффСктивным. ΠŸΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΎΠ±ΠΎΠΈΡ… ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² дСмонстрируСтся Π² ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ Π½ΠΈΠΆΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.

// ΠžΡ‚ΡΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΡŽ Ρ‚ΠΈΠΏΠ° ArrayList ΠΈ ΠΎΡΡƒΡ‰Π΅ΡΡ‚Π²ΠΈΡ‚ΡŒ Π² Π½Π΅ΠΉ поиск.

using System;

using System.Collections;

class SortSearchDemo { static void Main() {

// Π‘ΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΡŽ Π² Π²ΠΈΠ΄Π΅ динамичСского массива.

ArrayList al = new ArrayList();

// Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ элСмСнты Π² динамичСский массив.

al.Add(55);

al.Add(43) ;

al.Add(-4);

al.Add(88);

al.Add(3);

al.Add(19) ;

Console.Write("Π˜ΡΡ…ΠΎΠ΄Π½ΠΎΠ΅ содСрТимоС: "); foreach(int i in al)

Console.Write (i + " ");

Console.WriteLine ("\n");

// ΠžΡ‚ΡΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ динамичСский массив, al.Sort();

// ΠžΡ‚ΠΎΠ±Ρ€Π°Π·ΠΈΡ‚ΡŒ содСрТимоС динамичСского массива, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Ρ†ΠΈΠΊΠ» foreach.

Console..Write ("Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠΈΠΌΠΎΠ΅ послС сортировки: ") ; foreach (int i in al)

Console.Write (i + " ");

Console.WriteLine ("\n");

Console.WriteLine("ИндСкс элСмСнта 43: " + al.BinarySearch (43));

}

}

НиТС ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ выполнСния этой ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.

Π˜ΡΡ…ΠΎΠ΄Π½ΠΎΠ΅ содСрТимоС: 55 43 -488 3 19

Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠΈΠΌΠΎΠ΅ послС сортировки: -4 3 19 43 55 88

ИндСкс элСмСнта 43: 3

Π’ ΠΎΠ΄Π½ΠΎΠΉ ΠΈ Ρ‚ΠΎΠΉ ΠΆΠ΅ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ Ρ‚ΠΈΠΏΠ° ArrayList ΠΌΠΎΠ³ΡƒΡ‚ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒΡΡ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ любого Ρ‚ΠΈΠΏΠ°. Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅ Π²ΠΎ врСмя сортировки ΠΈ поиска Π² Π½Π΅ΠΉ эти ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ приходится ΡΡ€Π°Π²Π½ΠΈΠ²Π°Ρ‚ΡŒ. Π’Π°ΠΊ, Ссли Π±Ρ‹ список ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Π² ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ Π²Ρ‹ΡˆΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ содСрТал ΡΠΈΠΌΠ²ΠΎΠ»ΡŒΠ½ΡƒΡŽ строку, Ρ‚ΠΎ ΠΈΡ… сравнСниС ΠΏΡ€ΠΈΠ²Π΅Π»ΠΎ Π±Ρ‹ ΠΊ ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ситуации. Π’ΠΏΡ€ΠΎΡ‡Π΅ΠΌ, для сравнСния ΡΠΈΠΌΠ²ΠΎΠ»ΡŒΠ½Ρ‹Ρ… строк ΠΈ Ρ†Π΅Π»Ρ‹Ρ… чисСл ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹. О Ρ‚Π°ΠΊΠΈΡ… ΠΌΠ΅Ρ‚ΠΎΠ΄Π°Ρ… сравнСния Ρ€Π΅Ρ‡ΡŒ ΠΏΠΎΠΉΠ΄Π΅Ρ‚ Π΄Π°Π»Π΅Π΅ Π² этой Π³Π»Π°Π²Π΅.

ΠŸΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ массива ΠΈΠ· ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ Ρ‚ΠΈΠΏΠ° ArrayList

Π’ Ρ€Π°Π±ΠΎΡ‚Π΅ с ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠ΅ΠΉ Ρ‚ΠΈΠΏΠ° ArrayList ΠΈΠ½ΠΎΠ³Π΄Π° трСбуСтся ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΈΠ· Π΅Π΅ содСрТимого ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΉ массив. Π­Ρ‚ΠΎΠΉ Ρ†Π΅Π»ΠΈ слуТит ΠΌΠ΅Ρ‚ΠΎΠ΄ ВоАггау (). Для прСобразования ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ Π² массив имССтся нСсколько ΠΏΡ€ΠΈΡ‡ΠΈΠ½. Π”Π²Π΅ ΠΈΠ· Π½ΠΈΡ… Ρ‚Π°ΠΊΠΎΠ²Ρ‹: ΠΏΠΎΡ‚Ρ€Π΅Π±Π½ΠΎΡΡ‚ΡŒ Π² ускорСнии ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΡ€ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ ΠΈ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Ρ‚ΡŒ массив ΠΌΠ΅Ρ‚ΠΎΠ΄Ρƒ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π½Π΅ пСрСгруТаСтся, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΈΠ½ΡΡ‚ΡŒ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΡŽ. Но нСзависимо ΠΎΡ‚ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΉ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Ρ‹ коллСкция Ρ‚ΠΈΠΏΠ° ArrayList прСобразуСтся Π² ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΉ^лассив довольно просто, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π² ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ Π½ΠΈΠΆΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.

// ΠŸΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΡŽ Ρ‚ΠΈΠΏΠ° ArrayList Π² ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΉ массив.

using System;

using System.Collections;

class ArrayListToArray { static void Main() {

ArrayList al = new ArrayList();

// Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ элСмСнты Π² динамичСский массив, al.Add(1); al.Add(2); al.Add(3) ; al.Add(4) ;

Console.Write("Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠΈΠΌΠΎΠ΅: "); foreach(int i in al)

Console.Write(i + " ");

Console.WriteLine();

int[] ia = (int[]) al.ToArray(typeof(int)); int sum = 0;

// ΠŸΡ€ΠΎΡΡƒΠΌΠΌΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ элСмСнты массива, for(int i=0; icia.Length; i++) sum += ia[i];

Console.WriteLine("Π‘ΡƒΠΌΠΌΠ° Ρ€Π°Π²Π½Π°: " + sum);

}

}

Π­Ρ‚Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π΄Π°Π΅Ρ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚.

Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠΈΠΌΠΎΠ΅: 1 2 3 4 Π‘ΡƒΠΌΠΌΠ° Ρ€Π°Π²Π½Π°: 10

Π’ Π½Π°Ρ‡Π°Π»Π΅ этой ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ создаСтся коллСкция Ρ†Π΅Π»Ρ‹Ρ… чисСл. Π—Π°Ρ‚Π΅ΠΌ Π² Π½Π΅ΠΉ вызываСтся ΠΌΠ΅Ρ‚ΠΎΠ΄ ToArray () с ΡƒΠΊΠ°Π·Π°Π½ΠΈΠ΅ΠΌ Ρ‚ΠΈΠΏΠ° int ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌΠΎΠ³ΠΎ массива. Π’ ΠΈΡ‚ΠΎΠ³Π΅ создаСтся цСлочислСнный массив. Но ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Array являСтся Ρ‚ΠΈΠΏΠΎΠΌ, Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΡ‹ΠΌ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ ToArray (), Ρ‚ΠΎ содСрТимоС ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌΠΎΠ³ΠΎ Π² ΠΈΡ‚ΠΎΠ³Π΅ массива Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ΠΎ ΠΊ Ρ‚ΠΈΠΏΡƒ int [ ]. (Напомним, Ρ‡Ρ‚ΠΎ Array являСтся Π±Π°Π·ΠΎΠ²Ρ‹ΠΌ Ρ‚ΠΈΠΏΠΎΠΌ для всСх массивов Π² Π‘#.) И Π½Π°ΠΊΠΎΠ½Π΅Ρ†, значСния всСх элСмСнтов массива ΡΡƒΠΌΠΌΠΈΡ€ΡƒΡŽΡ‚ΡΡ.

Класс Hashtable

Класс Hashtable ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ для создания ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ для хранСния Π΅Π΅ элСмСнтов слуТит Ρ…Π΅Ρˆ-Ρ‚Π°Π±Π»ΠΈΡ†Π°. Как Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ извСстно Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Ρƒ Ρ‡ΠΈΡ‚Π°Ρ‚Π΅Π»Π΅ΠΉ, информация сохраняСтся Π² Ρ…Π΅Ρˆ-Ρ‚Π°Π±Π»ΠΈΡ†Π΅ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠ°, Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΠΎΠ³ΠΎ Ρ…Π΅ΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ. ΠŸΡ€ΠΈ Ρ…Π΅ΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ для опрСдСлСния ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ значСния, Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΠΎΠ³ΠΎ Ρ…Π΅Ρˆ-ΠΊΠΎΠ΄ΠΎΠΌ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΎΠ½Π½ΠΎΠ΅ содСрТимоС ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΊΠ»ΡŽΡ‡Π°. ΠŸΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹ΠΉ Π² ΠΈΡ‚ΠΎΠ³Π΅ Ρ…Π΅Ρˆ-ΠΊΠΎΠ΄ слуТит Π² качСствС индСкса, ΠΏΠΎ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ Π² Ρ‚Π°Π±Π»ΠΈΡ†Π΅ хранятся искомыС Π΄Π°Π½Π½Ρ‹Π΅, ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ Π·Π°Π΄Π°Π½Π½ΠΎΠΌΡƒ ΠΊΠ»ΡŽΡ‡Ρƒ. ΠŸΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΠ»ΡŽΡ‡Π° Π² Ρ…Π΅Ρˆ-ΠΊΠΎΠ΄ выполняСтся автоматичСски, ΠΈ поэтому сам Ρ…Π΅Ρˆ-ΠΊΠΎΠ΄ Π²ΠΎΠΎΠ±Ρ‰Π΅ нСдоступСн ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ. ΠŸΡ€Π΅ΠΈΠΌΡƒΡ‰Π΅ΡΡ‚Π²ΠΎ Ρ…Π΅ΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡ Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ΠΎ обСспСчиваСт постоянство Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ выполнСния ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ поиска, извлСчСния ΠΈ установки Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ нСзависимо ΠΎΡ‚ Π²Π΅Π»ΠΈΡ‡ΠΈΠ½Ρ‹ массивов Π΄Π°Π½Π½Ρ‹Ρ…. Π’ классС Hashtable Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΡŽΡ‚ΡΡ интСрфСйсы I Dictionary, ICollection, IEnumerable, ISerializable, IDeserializationCallback ΠΈ ICloneable.

Π’ классС Hashtable ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΎ Π½Π΅ΠΌΠ°Π»ΠΎ конструкторов. НиТС ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Ρ‹ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ конструкторы этого класса.

public Hashtable () public Hashtable(IDictionary d) public Hashtable(int capacity) public Hashtable(int capacity,

float loadFactor)

Π’ ΠΏΠ΅Ρ€Π²ΠΎΠΉ Ρ„ΠΎΡ€ΠΌΠ΅ создаСтся создаваСмый ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ класса Hashtable. Π’ΠΎ Π²Ρ‚ΠΎΡ€ΠΎΠΉ Ρ„ΠΎΡ€ΠΌΠ΅ создаваСмый ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Ρ‚ΠΈΠΏΠ° Hashtable инициализируСтся элСмСнтами ΠΈΠ· ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ d. Π’ Ρ‚Ρ€Π΅Ρ‚ΡŒΠ΅ΠΉ Ρ„ΠΎΡ€ΠΌΠ΅ создаваСмый ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Ρ‚ΠΈΠΏΠ° Hashtable инициализируСтся, учитывая Π΅ΠΌΠΊΠΎΡΡ‚ΡŒ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ, Π·Π°Π΄Π°Π²Π°Π΅ΠΌΡƒΡŽ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠΌ capacity. И Π² Ρ‡Π΅Ρ‚Π²Π΅Ρ€Ρ‚ΠΎΠΉ Ρ„ΠΎΡ€ΠΌΠ΅ создаваСмый ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Ρ‚ΠΈΠΏΠ° Hashtable инициализируСтся, учитывая Π·Π°Π΄Π°Π½Π½ΡƒΡŽ Π΅ΠΌΠΊΠΎΡΡ‚ΡŒ capacity ΠΈ коэффициСнт заполнСния loadFactor. ΠšΠΎΡΡ„Ρ„ΠΈΡ†ΠΈΠ΅Π½Ρ‚ заполнСния, ΠΈΠ½ΠΎΠ³Π΄Π° Π΅Ρ‰Π΅ Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΡ‹ΠΉ коэффициСнтом Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ, Π΄ΠΎΠ»ΠΆΠ΅Π½ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ Π² ΠΏΡ€Π΅Π΄Π΅Π»Π°Ρ…

ΠΎΡ‚ ΠžΠ” Π΄ΠΎ 1,0. Он опрСдСляСт ΡΡ‚Π΅ΠΏΠ΅Π½ΡŒ заполнСния Ρ…Π΅Ρˆ-Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ Π΄ΠΎ увСличСния Π΅Π΅ Ρ€Π°Π·ΠΌΠ΅Ρ€Π°. Π’ частности, Ρ‚Π°Π±Π»ΠΈΡ†Π° Ρ€Π°ΡΡˆΠΈΡ€ΡΠ΅Ρ‚ΡΡ, Ссли количСство элСмСнтов оказываСтся большС Смкости Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹, ΡƒΠΌΠ½ΠΎΠΆΠ΅Π½Π½ΠΎΠΉ Π½Π° коэффициСнт заполнСния. Π’ Ρ‚Π΅Ρ… конструкторах, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°ΡŽΡ‚ коэффициСнт заполнСния Π² качСствС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°, этот коэффициСнт ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ выбираСтся Ρ€Π°Π²Π½Ρ‹ΠΌ 1,0.

Π’ классС Hashtable опрСдСляСтся ряд собствСнных ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ², ΠΏΠΎΠΌΠΈΠΌΠΎ Ρ‚Π΅Ρ…, Ρ‡Ρ‚ΠΎ ΡƒΠΆΠ΅ ΠΎΠ±ΡŠΡΠ²Π»Π΅Π½Ρ‹ Π² интСрфСйсах, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π² Π½Π΅ΠΌ Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΡŽΡ‚ΡΡ. НСкоторыС ΠΈΠ· Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² этого класса ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Ρ‹ Π² Ρ‚Π°Π±Π». 25.5. Π’ частности, для Ρ‚ΠΎΠ³ΠΎ Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ, содСрТится Π»ΠΈ ΠΊΠ»ΡŽΡ‡ Π² ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ Ρ‚ΠΈΠΏΠ° Hashtable, вызываСтся ΠΌΠ΅Ρ‚ΠΎΠ΄ Contains Key (). А для Ρ‚ΠΎΠ³ΠΎ Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹ΡΡΠ½ΠΈΡ‚ΡŒ, хранится Π»ΠΈ Π² Ρ‚Π°ΠΊΠΎΠΉ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, вызываСтся ΠΌΠ΅Ρ‚ΠΎΠ΄ ContainsValue (). Для пСрСчислСния содСрТимого ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ Ρ‚ΠΈΠΏΠ° Hashtable слуТит ΠΌΠ΅Ρ‚ΠΎΠ΄ GetEnumerator (), Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°ΡŽΡ‰ΠΈΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Ρ‚ΠΈΠΏΠ° IDictionaryEnumerator. Напомним, Ρ‡Ρ‚ΠΎ IDictionaryEnumerator β€” это ΠΏΠ΅Ρ€Π΅Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅Π»ΡŒ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΉ для пСрСчислСния содСрТимого ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ хранятся ΠΏΠ°Ρ€Ρ‹ "ΠΊΠ»ΡŽΡ‡-Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅".

Π’Π°Π±Π»ΠΈΡ†Π° 25.5. НаиболСС часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹, ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ Π² классС Hashtable

ΠœΠ΅Ρ‚ΠΎΠ΄

ОписаниС