3

我有键和值的映射,我的目标是获取“键”列表。我想把它放到数组或列表中。到了我在 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 :(
4

4 回答 4

4

使用List.addAll方法?

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

如果没有 - 你总是可以手动循环通过集合......

于 2010-12-02T09:00:01.833 回答
0

你能用:

设置键 = mmm.keySet(); 列表键列表 = 新列表(键);

于 2016-10-27T17:39:04.940 回答
0

您应该始终使用泛型来确保类型安全。

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 。

该解决方案将起作用。

于 2017-07-11T12:03:57.767 回答
0

一个快速而简单的方法也是:

new List<String>(mmm.keySet());
//or
new String[mmm.keySet()];

在我最近编写的一些代码中,我有一个 aSet<String>并将其传递给一个采用List<String>with methodName( new List<String>(setVariable) );or的方法methodName(new String[setVariable] );


是的,我知道该帖子已有 11 年以上的历史了……但这也是搜索时出现的问题,因此我将答案放在这里。

于 2022-02-28T09:27:41.797 回答