exponenta event banner

Изменение ключей и значений на карте

Примечание

Помните, что при наличии нескольких дескрипторов карты изменение маркера также вносит изменения в исходную карту. См. раздел Изменение копии карты ниже.

Удаление ключей и значений с карты

Используйте remove для удаления любых записей из карты. При вызове этого метода укажите Map имя объекта и имя удаляемого ключа. MATLAB ® удаляет ключ и связанное с ним значение из карты.

Синтаксис метода удаления:

remove(mapName, 'keyname');

Начните с карты ticketMap :

ticketMap = containers.Map(...
    {'2R175', 'B7398', 'A479GY', 'NZ1452'}, ...
    {'James Enright', 'Carl Haynes', 'Sarah Latham', ...
     'Bradley Reid'});

Удалите одну запись (указанный ключ и его значение) из Map объект:

remove(ticketMap, 'NZ1452');
values(ticketMap)

ans = 

    'James Enright'    'Sarah Latham'    'Carl Haynes'

Изменение значений

Можно изменить любое значение на карте, просто перезаписав текущее значение. Билет на удержание пассажиров A479GY идентифицируется как Sarah Latham:

ticketMap('A479GY')

ans =

Sarah Latham

Измените имя пассажира на Anna Latham путем перезаписи исходного значения для A479GY ключ:

ticketMap('A479GY') = 'Anna Latham';

Проверьте изменение:

ticketMap('A479GY')

ans =

Anna Latham

Изменить ключи

Для изменения существующего ключа при сохранении значения сначала удалите ключ и его значение из карты. Затем создайте новую запись, на этот раз с исправленным именем ключа.

Измените номер билета, принадлежащего пассажиру Джеймсу Энрайту:

remove(ticketMap, '2R175');
ticketMap('2S185') = 'James Enright';

k = keys(ticketMap);  v = values(ticketMap);
str1 = '   ''%s'' has been assigned a new\n';
str2 = '    ticket number: %s.\n';

fprintf(str1, v{1})
fprintf(str2, k{1})

 'James Enright' has been assigned a new
    ticket number: 2S185.

Изменение копии карты

Поскольку ticketMap является объектом-дескриптором, необходимо соблюдать осторожность при создании копий карты. Помните, что, копируя объект Map, вы просто создаете другой дескриптор для того же объекта. Любые изменения, внесенные в этот дескриптор, также применяются к исходной карте.

Сделайте копию ticketMap Карта. Запишите в эту копию и обратите внимание, что изменение применяется к исходному объекту Map:

copiedMap = ticketMap;

copiedMap('AZ12345') = 'unidentified person';
ticketMap('AZ12345')

ans =

unidentified person

Очистить:

remove(ticketMap, 'AZ12345');
clear copiedMap;

См. также

| | | | | |

Связанные темы