domingo, 8 de maio de 2016

Convertendo List em Set e Set em List no Apex

Em algumas situações, me vi obrigado a converter uma collection List em um Set ou um Set em List em uma classe Apex. Creio que você também! É claro que, por serem estruturas diferentes, a quantidade de registros de um List (que permite itens repetidos) pode ser maior que de um Set (que não permite repetidos). Mas vamos ao código.

Inicialmente a conversão de List para Set:

 List<Integer> listDeInteiros = new List<Integer> {1, 2, 3, 3};  
 Set<Integer> setDeInteiros = new Set<Integer>(listDeInteiros);  
 system.assertEquals(4, listDeInteiros.size());  
 system.assertEquals(3, setDeInteiros.size());  



Agora a conversão de Set para List:


 Set<Integer> setDeInteiros = new Set<Integer> {1, 2, 3, 3};  
 Set<Integer> listDeInteiros = new Set<Integer>(setDeInteiros);  
 system.assertEquals(3, setDeInteiros.size());  
 system.assertEquals(3, listDeInteiros.size());  


É possível também, caso já possua um Set em uso, acrescentar toda a List ao Set:


 List<Integer> listDeInteiros = new List<Integer>{1, 2, 3};  
 Set<Integer> setDeInteiros = new Set<Integer> {0};  
 setDeInteiros.addAll(listDeInteiros);  
 system.assertEquals(4, setDeInteiros.size());  



E o contrário... Set ao List:


 Set<Integer> setDeInteiros = new Set<Integer>{1, 2, 3};  
 List<Integer> listDeInteiros = new List<Integer> {0};  
 listDeInteiros.addAll(setDeInteiros);  
 system.assertEquals(4, listDeInteiros.size());  





Nenhum comentário: