Как преобразовать SET в массив в APEX?

У меня есть карта с ключом и значением, и моя цель - получить список «ключей». Я думаю, чтобы получить его в массив или список. Дошел до того, что у меня есть ключевые значения в SET, но я не понял, как преобразовать их в массив.

ниже мой код:

Map<String, String> mmm = new Map<String, String>();
mmm.put('one', 'oneee');
mmm.put('two', 'twooo');
mmm.put('three', 'threeee');
mmm.put('four', 'fourff');

//outputs values in the map
system.debug('=======values()==========>' + mmm.values());
//outputs key in the map
system.debug('=======keyset()===========>' + mmm.keyset());

//get keys in the type SET
SET<string> s = mmm.keyset();
//returns 4
system.debug('------------------------------------' + s.size());

s.arrayTo() //this method does not exist :(

person Meow    schedule 02.12.2010    source источник
comment
Для всех, кто приходит сюда в поисках ответа на Set; Вопрос касается Sets, но в примере кода используется Map. В решении упоминается keyset(), но этого не существует для Set. Если вам нужно преобразовать Set в List, я использую вместо этого Map и добавляю значение в качестве ключа, что повторяет функциональность Set.   -  person lindon fox    schedule 19.06.2013


Ответы (3)


Использовать метод List.addAll?

http://www.salesforce.com/us/developer/docs/apexcode/index_Left.htm#StartTopic=Content/apex_methods_system_list.htm?SearchType=Stem

Если нет - вы всегда можете вручную перебрать набор...

person eyescream    schedule 02.12.2010
comment
Да, также после получения значений вызовом keyset() for(String s : keys) также работает для итерации. Спасибо за совет! - person Meow; 03.12.2010
comment
Мне больше всего нравится подход for(String s : keys). - person tomdemuyt; 16.12.2011

Не могли бы вы использовать:

Установить ключи = mmm.keySet(); Список ключейList = новый список (ключи);

person Randy Rowell    schedule 27.10.2016

Вы всегда должны использовать дженерики для безопасности типов.

Map<String, String> mmm = new Map<String, String>();
mmm.put('one', 'oneee');
mmm.put('two', 'twooo');
mmm.put('three', 'threeee');
mmm.put('four', 'fourff');

List<String> lstKeys = new List<String>(mmm.keyset());
System.debug('Output : '+lstKeys);

По ссылке: https://salesforce.stackexchange.com/questions/5447/is-there-a-difference-between-an-array-and-a-list-in-apex .

Это решение будет работать.

person Community    schedule 11.07.2017