Подтвердить что ты не робот

Объектив C, эквивалентный Java ArrayList

Просто интересно, есть ли эквивалент Java ArrayList в Objective-C?

Или что-то, что можно использовать для хранения объектов/данных, которые не имеют заданного размера.

Спасибо.

4b9b3361

Ответ 1

Как отмечали другие, NSArray/NSMutableArray - это то, что вы ищете.

Из мира Java вы можете обнаружить, что предложения коллекции Cocoa кажутся довольно ничтожными. Фактически, функциональность довольно обширна. NSArray, NSDictionary и NSSet являются, фактически, кластерами классов, что означает, что публичный API является "абстрактным" класс. Когда вы инициализируете одну из коллекций, то, что вы получаете, фактически является конкретной реализацией, адаптированной для данных, которые вы предоставляете. Эти реализации могут также изменять конкретную реализацию во время выполнения, если данные изменяются (например, они растут по размеру). Это возможно из-за Objective-C гораздо более динамического времени выполнения, чем позволяет статическая типизация Java (и безопасность). Таким образом, кластерная стратегия класса скрывает многие из реализаций, например. интерфейс java.util.List, за единственным API.

Структуры Cocoa несколько ограничены в составных структурах данных (т.е. построенных поверх "примитивных" массивов, наборов и словарей). Вы можете обнаружить, что отличный, открытый источник CHDataStructures заполняет многие пробелы.

Ответ 2

NSMutableArray. Вы можете добавлять к нему объекты по мере необходимости.