Salesforce集合

集合类型:

集合类型主要有三种,List,Set以及Map。其中三种均为泛型方式,所以声明变量时,直接带上泛型。

1、List<T>

List代表一类的有序数据列表。数据序号从0开始。与JAVA不同的是:List是一个类,并且不存在ArrayList等子类。即实例化

eg:List<String> list1 = new List<String>();

List可以通过自身构造函数实例化,也可以通过数组进行实例化。

注:set()方法在设置插入位置以前应确保长度大于需要插入的位置,否则将抛出异常。

以下为List主要方法:

```

 List<String> lists = new String[]{'1','3'};

 List<String> list1 = new String[] {'5','4'};

 lists.set(0,'a');

 lists.add(0,'b');

 lists.add('2');

 lists.addAll(list1);

 //lists.sort();

 for(String item : lists) {

     System.debug('item : ' + item);

 }

 Iterator<String> iterator = lists.iterator();

 while(iterator.hasNext()) {

     String item = iterator.next();

     System.debug('通过iterator遍历:'+ item);

 }

 if(lists.size() > 0) {

     Integer listSize = lists.size();

     lists.remove(listSize-1);

 }

 List<String> cloneList = lists.clone();

 for(Integer i=0;i<cloneList.size();i++) {

     System.debug('cloneListItem : ' + cloneList.get(i));

 }

 lists.clear();

 if(lists.size() > 0) {

     for(String item : lists) {

     System.debug('set item : ' + item);

 } else {

     System.debug('lists has already clear');

 }

```

2、Set<T>

Set代表一类数据的无序列表。与JAVA不同的是:Set是一个类,不存在HashSet等子类。即实例化

eg:Set<String> set1 = new Set<String>();

Set主要方法如下:

```

 Set<String> set1 = new Set<String>();

 set1.add('1');

 set1.add('2');

 Set<String> set2 = set1.clone();

 Boolean isEquals = set1.equals(set2);

 Boolean isContains = set1.contains('1');

 Integer setSize = set1.size();

 Iterator<String> iterator2 = set1.iterator();

 while(iterator2.hasNext()) {

       System.debug('set item:' + iterator2.next());

 }

 Boolean isEmpty = set1.isEmpty();

 //set1.remove('1');

 List<String> anotherList = new String[] {'1','3'};

 /*

     public Boolean retainAll(List<Object> list)

     //译:set值为list中和set重复的内容,如果没有重复的内容,则set为空

 */

 set1.retainAll(anotherList);

 Iterator<String> iterator3 = set1.iterator();

 while(iterator3.hasNext()) {

     System.debug('set item via retainAll:' +

 iterator3.next());//1,List与Set公共部分

 }

```

3、Map<K,V>

Map代表着键值对,与JAVA用法类似,区别为Map是一个类,不是接口,不存在HashMap<K,V>等子类

Map主要方法如下:

```

 Map<String,Object> map1 = new Map<String,Object>();

 map1.put('key1','value1');

 map1.put('key2','value2');

 map1.put('key3','value3');

 Boolean isContainsKey = map1.containsKey('key1');

 Map<String,Object> map2 = map1.clone();

 Boolean isMapEquals = map1.equals(map2);

 Set<String> keySet = map1.keySet();

 String value1 = (String)map1.get('key1');

 List<String> valuesList = (List<String>)map1.values();

 Integer mapSize = map1.size();

```

上一篇:Set类使用


下一篇:LeetCode编程练习,21天每日一题记录(第4天)