Java: Какой термин подходит для многомерных типов, одномерных типов? - PullRequest
0 голосов
/ 17 июня 2011

В контексте Java, как правильно ссылаться на тип переменной, который может содержать несколько объектов или примитивов, и как правильно ссылаться на тип, который может содержать только один?

В общих чертахЯ называю списки, массивы, векторы, хеш-таблицы, деревья и т. Д. Коллекциями;и я называю примитивные типы и одномерные объекты скалярами.

В дикой природе я слышал всевозможные комбинации фраз, в том числе несколько совершенно вводящих в заблуждение:

"Я храню свои пары ключ / значение в хеш-таблице. "
" Зачем вам нужно более одной хеш-таблицы? "
" Что вы имеете в виду? Я использую только одну хеш-таблицу. "

Существует ли общепринятый способ обозначения этих двух групп типов на высоком уровне?

Ответы [ 4 ]

0 голосов
/ 18 июня 2011

Просто используйте наиболее конкретное имя класса Java API (Коллекция, Список, Объект и т. Д.), Без переопределения, и 99% всех разработчиков Java поймут, что вы имеете в виду.

0 голосов
/ 17 июня 2011

Я не уверен, что такая терминология действительно применима к ОО-языку, такому как Java.Существует различие между примитивами, которые могут содержать только одно значение, и объектами, однако объект может содержать любое количество других объектов.

Объекты, цель которых - содержать ноль или более экземпляров некоторых другихобъект (по моему опыту) называется коллекциями, возможно из-за API коллекций или массивов .

Я предполагаю языки, в которых вы имеете дело с указателямии тому подобное больше зависит от различия.

0 голосов
/ 17 июня 2011

Я думаю, что ваш вопрос предполагает, что есть только 2 класса, и один из них - то, что вы называете Коллекциями. Позвольте мне сказать, что я также называю списки, карты, наборы и т. Д. Коллекциями, поскольку они являются частью API коллекций. Однако Collection не находится на том же уровне абстракции, что и примитивный тип данных, такой как integer. Действительно, у вас есть примитивы и ссылки. Ссылки являются указателями на объекты, которые являются экземплярами классов. Классы можно классифицировать многими способами. Одна из этих классификаций - «Коллекции».

Ваш друг, который говорит "вектор хеш-таблицы", в значительной степени ошибается, если есть только одна таблица. Хеш-таблица - это хеш-таблица, а вектор - это вектор. Насколько мне известно, вектор хеш-таблицы Vector<Hashtable>.

0 голосов
/ 17 июня 2011

Спецификация языка Java использует термины "примитив" и "ссылка", чтобы проводить это различие как для переменных, так и для значений. Это может сбивать с толку в контексте другого языка программирования, где «ссылка» означает что-то другое.

Однако я не могу сказать, является ли это именно тем различием, которое вы пытаетесь провести. Если вы хотите объединить строки и обёртки объектов, такие как Integer, с примитивными типами Java, такими как int, вы можете отличить масштабирующее устройство от не масштабирующего. Конечно, не все не-скалеры являются коллекциями.

...