Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Программирование [игнор отключен] [закрыт для гостей] / [С#] Идея "Коллекций" и их отличия от массивов. / 18 сообщений из 18, страница 1 из 1
13.02.2013, 13:34
    #38149379
Bananas
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
[С#] Идея "Коллекций" и их отличия от массивов.
Потихоньку изучаю язык, читаю в сети про коллекции. Из всего прочитанного вырисовывается следующее:
Массив - как в с++ - элементы, последовательно располагающиеся в памяти. Типа структуры: struct A{ int a; int b; int c;}.
Коллекция - целый класс, с механизмами добавления, удаления, вставки, поиска и т.д., со своими всякими счетчиками. А новые элементы создаются динамически, класс же - вроде оболочки для этих объектов. В uml, кажется, подходящий термин есть - композиция. Внутри коллекции элементы представляют собой указатели на участки кучи, сами же указатели создаются и хранятся во внутренней struct {} коллекции. Механизмы коллекции называют интерфейсами, а у массивов интерфейсов нет.
В общем... как вам моя каша? :)
...
Рейтинг: 0 / 0
13.02.2013, 14:08
    #38149493
AndreTM
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
[С#] Идея "Коллекций" и их отличия от массивов.
И в чём вопрос? Или надо знания покритиковать?
Например, обычный массив аналогичен String , а работа с ним - как поэлементное обращение к символам строки. С другой стороны, массивы могут быть даже полностью динамическими, в этом случае организация их происходит так же, как и коллекций, но с тем отличием, что доступ к физической структуре такого массива не вынесен в интерфейс.
Также и коллекция может быть организована с последовательным выделением памяти...
...
Рейтинг: 0 / 0
13.02.2013, 15:54
    #38149766
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
[С#] Идея "Коллекций" и их отличия от массивов.
Bananas, коллекция - это седьмая вода на киселе. Абстракция. Предмет
которым модно бравировать в дискуссиях и технических заданиях.
Ну к примеру колода карт - это явно коллекция. Но без всякой
реализации т.к. понять что это массив, список или дек совершенно
невозможно. Это вобщем-то даже вопрос философский.

Вобщем массив - это самая простая РЕАЛИЗАЦИЯ коллекции.
...
Рейтинг: 0 / 0
13.02.2013, 16:35
    #38149871
Naf
Naf
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
[С#] Идея "Коллекций" и их отличия от массивов.
как это у массивов нет интерфейсов? да полно
Код: c#
1.
2.
public abstract class Array : ICloneable, 
	IList, ICollection, IEnumerable, IStructuralComparable, IStructuralEquatable
...
Рейтинг: 0 / 0
13.02.2013, 16:39
    #38149878
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
[С#] Идея "Коллекций" и их отличия от массивов.
Из первого поста автора видно что он сравнивает массивы со
структурой данных без инкапсуляции логики. Что-то типа:

int[] A=new int[]{1,2,3};
...
Рейтинг: 0 / 0
13.02.2013, 16:40
    #38149879
Naf
Naf
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
[С#] Идея "Коллекций" и их отличия от массивов.
К тому же массив ссылочный тип, а структура - значимый
...
Рейтинг: 0 / 0
13.02.2013, 17:11
    #38149941
Bananas
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
[С#] Идея "Коллекций" и их отличия от массивов.
На основе неглубоких знаний с++ пытался понять отличие коллекций, думал: типы, относящиеся к массивам (int, float и т.д.) - тупо структуры, а типы, относящиеся к коллекциям -- классы + интерфейсы. А получается, что "коллекция" - обобщенное понятие, а "массив" - какая-либо конкретная реализация этой коллекции, т.е., на самом деле, класс + интерфейсы? Типа как "кухонная посуда" и "чайная чашка".
...
Рейтинг: 0 / 0
13.02.2013, 22:49
    #38150382
ZyK_BotaN
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
[С#] Идея "Коллекций" и их отличия от массивов.
Bananasтипы, относящиеся к массивам (int, float и т.д.) - тупо структуры

?
...
Рейтинг: 0 / 0
14.02.2013, 06:36
    #38150507
AndreTM
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
[С#] Идея "Коллекций" и их отличия от массивов.
ZyK_BotaNBananasтипы, относящиеся к массивам (int, float и т.д.) - тупо структуры
?Это он про паскалевские ordinal types
...
Рейтинг: 0 / 0
14.02.2013, 11:21
    #38150773
Bananas
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
[С#] Идея "Коллекций" и их отличия от массивов.
?
Шокировал до глубины души? Мое заблуждение на столько глубоко, что разъяснения бесполезны?(
...
Рейтинг: 0 / 0
14.02.2013, 11:28
    #38150790
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
[С#] Идея "Коллекций" и их отличия от массивов.
Bananas, ты пиши не текстами а примерами на сишарпЕ. В противном
случае мы уйдем в глубокую диалектическую философию.
...
Рейтинг: 0 / 0
14.02.2013, 12:34
    #38150960
Bananas
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
[С#] Идея "Коллекций" и их отличия от массивов.
mayton, даже не знаю, какие примеры писать - вопрос был "в общем" - просто интересно: коллекции от массивов отличаются только тем, что могут динамически меняться и хранить элементы разных типов? В остальном, массивы также обладают интерфейсами типа IEnumerable и различными внутренними счетчиками?
...
Рейтинг: 0 / 0
14.02.2013, 13:04
    #38151042
ZyK_BotaN
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
[С#] Идея "Коллекций" и их отличия от массивов.
Bananasmayton, даже не знаю, какие примеры писать - вопрос был "в общем" - просто интересно: коллекции от массивов отличаются только тем , что могут динамически меняться и хранить элементы разных типов ? В остальном, массивы также обладают интерфейсами типа IEnumerable и различными внутренними счетчиками?

а массивы не могут?
...
Рейтинг: 0 / 0
14.02.2013, 13:41
    #38151146
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
[С#] Идея "Коллекций" и их отличия от массивов.
Bananasmayton, даже не знаю, какие примеры писать - вопрос был "в общем" - просто интересно: коллекции от массивов отличаются только тем, что могут динамически меняться и хранить элементы разных типов? В остальном, массивы также обладают интерфейсами типа IEnumerable и различными внутренними счетчиками?
Ты можешь объявить массив указателей (ссылок) на Object.
...
Рейтинг: 0 / 0
14.02.2013, 16:24
    #38151545
Bananas
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
[С#] Идея "Коллекций" и их отличия от массивов.
ZyK_BotaNа массивы не могут?

maytonТы можешь объявить массив указателей (ссылок) на Object.

Мой моск не выдерживает...

"Массивы являются коллекциями объектов одного типа . Поскольку длина массивов практически не ограничена, они могут использоваться для хранения тысяч или даже миллионов объектов, но размер массива должен быть указан при его создании ."
http://msdn.microsoft.com/ru-ru/library/9ct4ey7x%28v=vs.90%29.aspx

Теперь остается залезть туда, где описаны типы .net и прочитать то, чего читать не умею: описание класса, например, int и List, чтобы понять разницу..:(
...
Рейтинг: 0 / 0
14.02.2013, 17:32
    #38151701
oldjackal
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
[С#] Идея "Коллекций" и их отличия от массивов.
BananasВ общем... как вам моя каша? :)

В общем, СРОЧНО читать Кормена (можно еще Вирта, Кнута и Окасаки)! Иначе каша загниет и начнет пахнуть.
...
Рейтинг: 0 / 0
14.02.2013, 18:07
    #38151756
ZyK_BotaN
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
[С#] Идея "Коллекций" и их отличия от массивов.
BananasZyK_BotaNа массивы не могут?

maytonТы можешь объявить массив указателей (ссылок) на Object.

Мой моск не выдерживает...

"Массивы являются коллекциями объектов одного типа . Поскольку длина массивов практически не ограничена, они могут использоваться для хранения тысяч или даже миллионов объектов, но размер массива должен быть указан при его создании ."
http://msdn.microsoft.com/ru-ru/library/9ct4ey7x%28v=vs.90%29.aspx

Теперь остается залезть туда, где описаны типы .net и прочитать то, чего читать не умею: описание класса, например, int и List, чтобы понять разницу..:(
А коллекции являются коллекциями(извините за тавтологию) объектов разных типов?

з.ы. не читайте мсдн, его пишут индусы )
...
Рейтинг: 0 / 0
14.02.2013, 18:57
    #38151834
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
[С#] Идея "Коллекций" и их отличия от массивов.
Bananas
Мой моск не выдерживает...

"Массивы являются коллекциями объектов одного типа . Поскольку длина массивов практически не ограничена, они могут использоваться для хранения тысяч или даже миллионов объектов, но размер массива должен быть указан при его создании ."
http://msdn.microsoft.com/ru-ru/library/9ct4ey7x%28v=vs.90%29.aspx

Что здесь непонятного?

>> Одного типа.

Положи в него Object. И будет ссылка на
произвольный объект.

>> но размер массива должен быть указан при его создании

А сколько тебе нужно? Если ты пишешь код то в 99% случаев
знаешь сколько будет лежать в массиве. Или знаешь верхнюю
оценку. Если нет - удваивай размер при каждом переполнении.
Если не хватило памяти - клади на диск или в БД.
...
Рейтинг: 0 / 0
Форумы / Программирование [игнор отключен] [закрыт для гостей] / [С#] Идея "Коллекций" и их отличия от массивов. / 18 сообщений из 18, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]