Advertisement
airton-junior

Loops, Lists, Sets, Maps, sObjects

Apr 24th, 2023
674
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 12.04 KB | None | 0 0
  1. //Demonstrando loop while com operadores de incremento/decremento
  2.  
  3. Integer i=0;
  4. while(i<10){
  5.   System.debug('Valor de i: '+i);
  6.   // i = i + 2;
  7.   i++;
  8.   // i += 2;
  9. }
  10. System.debug('Fim do loop, conteúdo de i: '+i);
  11. //************************************************************/
  12. //Demonstrando loop while com operadores de incremento/decremento
  13. Integer i=9;
  14. while(i>=0){
  15.   System.debug('Valor de i: '+i);
  16.   // i = i - 2;
  17.   // i -= 2;
  18.   i--;
  19. }
  20. System.debug('Fim do loop');
  21. //************************************************************/
  22. //Demonstrando loop do while
  23. Integer i=0;
  24. do{
  25.   System.debug('Valor de i: '+i);
  26.   i++;
  27. }while(i<10);
  28.  
  29. System.debug('Fim do loop, valor de i: '+i);
  30. //************************************************************/
  31. //Demonstrando funcionamento loop for com variável em escopo dentro do loop
  32.  
  33. for(Integer i=0;i<10;i++){
  34.   System.debug('Valor de i: '+i);
  35. }
  36. //************************************************************/
  37. //Demonstrando funcionamento loop for com variável em escopo maior
  38. Integer i;
  39. for(i=0;i<10;i++){
  40.   System.debug('Valor de i: '+i);
  41. }
  42.   System.debug('Fim do loop, valor de i: '+i);
  43. //************************************************************/
  44. //Iterando Lista com loop while
  45. List<Contact> listaContatos = [SELECT Name FROM Contact];
  46. Integer i = 0;
  47. System.debug('Tamanho da lista: '+listaContatos.size());
  48. while(i<listaContatos.size()){
  49.     System.debug(listaContatos[i]);
  50.     i++;
  51. }
  52. //************************************************************/
  53. //Iterando Lista com for
  54. List<Contact> listaContatos = [SELECT Name FROM Contact];
  55. System.debug('Tamanho da lista: '+listaContatos.size());
  56. for(Integer i=0;i<listaContatos.size();i++){
  57.     System.debug(listaContatos[i]);
  58. }
  59. //************************************************************/
  60. //Iterando Lista com forEach
  61. List<Contact> listaContatos = [SELECT Name FROM Contact];
  62. for(Contact cadaContato:listaContatos){
  63.     System.debug(cadaContato);
  64. }
  65. //************************************************************/
  66. //Iterando Lista com forEach e pegando conteúdo dos campos separadamente
  67. List<Contact> listaContatos = [SELECT Name, Phone, Email FROM Contact];
  68. for(Contact cadaContato:listaContatos){
  69.     System.debug('O contato '+cadaContato.Name+' tem o telefone '+cadaContato.Phone+ ' e o email é: '+cadaContato.Email);
  70. }
  71. //************************************************************/
  72. List<Contact> listaContatos = [SELECT Name, Phone, Email FROM Contact];
  73. for(Contact cadaContato:listaContatos){
  74.     System.debug('O contato '+cadaContato.Name+' tem o telefone '+cadaContato.Phone+ ' e o email é: '+cadaContato.Email);
  75.     String email = cadaContato.Email;
  76.     System.debug(String.isBlank(email));
  77.     System.debug(email == null);
  78.     System.debug(cadaContato.Email == '');
  79. }
  80. //************************************************************/
  81. //Não quero ver quem tem o telefone ou email nulo
  82. List<Contact> listaContatos = [SELECT Name, Phone, Email FROM Contact];
  83. for(Contact cadaContato:listaContatos){
  84.   if(cadaContato.Phone != null || cadaContato.Email != null){
  85.     System.debug('O contato '+cadaContato.Name+' tem o telefone '+cadaContato.Phone+ ' e o email é: '+cadaContato.Email);
  86.   }
  87. }
  88. //************************************************************/
  89. //Demonstrando listas dentro de listas
  90. List<List<String>> palavras = new List<List<String>>{new List<String>{'mesa', 'cadeira'}, new List<String>{'banquinho', 'tapete'}};
  91. System.debug(palavras[0][0]); //mesa
  92. System.debug(palavras[0][1]); //cadeira
  93. System.debug(palavras[1][0]); //banquinho
  94. System.debug(palavras[1][1]); //tapete
  95. palavras[1][1] = 'armario';
  96. System.debug(palavras[1][1]); //tapete
  97.  
  98. //************************************************************/
  99. //Criando array bidimensional com Lists e iterando com for
  100.  
  101. List<List<String>> palavras = new List<List<String>>{new List<String>{'mesa', 'cadeira'}, new List<String>{'banquinho', 'tapete'}};
  102. for(Integer i=0;i<2;i++){
  103.   for(Integer j=0;j<2;j++){
  104.     System.debug(palavras[i][j]);
  105.   }
  106. }
  107. System.debug('Fim do loop');
  108. //************************************************************/
  109. //Criando array bidimensional com Lists e iterando com forEach
  110. List<List<String>> palavras = new List<List<String>>{new List<String>{'mesa', 'cadeira'}, new List<String>{'banquinho', 'tapete'}};
  111. for(List<String> elementos:palavras){
  112.   for(String palavra:elementos){
  113.     System.debug(palavra);
  114.   }
  115. }
  116. System.debug('Fim do loop');
  117. //************************************************************/
  118. //SET
  119. //Não é ordenado (não possui index)
  120. //Não aceita elementos repetidos
  121.  
  122. Set<String> palavras = new Set<String>{'mesa', 'cadeira', 'sofa', 'banquinho'};
  123. for(String p:palavras){
  124.   System.debug(p);
  125. }
  126. //************************************************************/
  127. //SET
  128. //Não é ordenado (não possui index)
  129. //Não aceita elementos repetidos
  130.  
  131. Set<String> palavras = new Set<String>{'mesa', 'cadeira', 'sofa', 'banquinho', 'cadeira', 'armário'};
  132. for(String p:palavras){
  133.   System.debug(p);
  134. }
  135.  
  136. //************************************************************/
  137. //Convertendo uma Lista em um Set
  138. List<String> palavrasList = new List<String>{'mesa', 'cadeira', 'mesa', 'sofa', 'banquinho', 'cadeira', 'armário'};
  139. System.debug('Size: '+palavrasList.size());
  140. palavrasList.set(3, 'televisão');
  141. System.debug('Size: '+palavrasList.size());
  142. palavrasList.clear();
  143. palavrasList.add('pen-drive');
  144. palavrasList.add('usb');
  145. palavrasList.add('usb type-C');
  146. palavrasList.remove(1);
  147. System.debug('Item no índice 1: '+palavrasList.get(1));
  148. for(String p:palavrasList){
  149.   System.debug(p);
  150. }
  151. Set<String> palavrasSet = new Set<String>(palavrasList);
  152. System.debug('Size: '+palavrasSet.size());
  153. palavrasSet.add('abajour');
  154. palavrasSet.add('abajour');
  155. for(String p:palavrasSet){
  156.   System.debug(p);
  157. }
  158.  
  159. //************************************************************/
  160. //Realizando ordenação com o método de List, sort()
  161. List<String> palavrasList = new List<String>{'mesa', 'cadeira', 'mesa', 'sofa', 'banquinho', 'cadeira', 'armário'};
  162. System.debug('Size: '+palavrasList.size());
  163. palavrasList.set(3, 'televisão');
  164. System.debug('Size: '+palavrasList.size());
  165. System.debug('Palavras fora de ordem');
  166. for(String p:palavrasList){
  167.   System.debug(p);
  168. }
  169. palavrasList.sort();
  170. System.debug('Palavras em ordem');
  171. for(String p:palavrasList){
  172.   System.debug(p);
  173. }
  174. //************************************************************/
  175.  
  176. //Demonstrando que não se adiciona elementos iguais aos já existentes num Set e que .sort() não funciona num Set
  177. Set<String> palavrasSet = new Set<String>(palavrasList);
  178. System.debug('Size: '+palavrasSet.size());
  179. palavrasSet.add('abajour');
  180. palavrasSet.add('abajour');
  181. // palavrasSet.sort(); --Não funciona para o Set
  182. System.debug('Set de palavras');
  183. for(String p:palavrasSet){
  184.   System.debug(p);
  185. }
  186. //************************************************************/
  187. //Uso do método "contains" da classe List
  188. List<String> palavrasList = new List<String>{'mesa', 'cadeira', 'mesa', 'sofa', 'banquinho', 'cadeira', 'armário'};
  189. System.debug(palavrasList.contains('mesa')); //Retorna true se o elemento existe dentro da List
  190.  
  191. //************************************************************/
  192. //Demonstrando adição de lista a um Map e pegando o valor retornado (Boolean) caso o set original tenha sofrido transformação
  193. List<String> palavrasList = new List<String>{'mesa', 'cadeira', 'mesa', 'sofa', 'banquinho', 'cadeira', 'armário'};
  194. System.debug('Tamanho da lista: '+palavrasList.size());
  195. System.debug(palavrasList);
  196. Set<String> conjunto = new Set<String>{'lâmpada', 'controle remoto', 'mesa', 'cadeira'};
  197. System.debug('Exibindo o Set original');
  198. System.debug(conjunto);
  199. System.debug('Tamanho do Set antes do addAll: '+conjunto.size());
  200. Boolean resultado = conjunto.addAll(palavrasList);
  201. System.debug('Houve alteração?: '+resultado);
  202. System.debug('Tamanho do Set após addAll: '+conjunto.size());
  203. System.debug(conjunto);
  204. //************************************************************/
  205. //Adicionando um set em outro, porém demonstrando que não há alteração pela não existência de novos elementos
  206. Set<String> conjunto = new Set<String>{'lâmpada', 'controle remoto', 'mesa', 'cadeira'};
  207. Set<String> conjunto2 = new Set<String>{'lâmpada', 'controle remoto', 'mesa', 'cadeira'};
  208. Boolean resultado = conjunto.addAll(conjunto2);
  209. System.debug('Houve alteração?: '+resultado);
  210. //************************************************************/
  211. //Removendo um elemento de um Set
  212. Set<String> conjunto = new Set<String>{'lâmpada', 'controle remoto', 'mesa', 'cadeira'};
  213. System.debug(conjunto);
  214. conjunto.remove('mesa');
  215. System.debug(conjunto);
  216. //************************************************************/
  217. //REMOVENDO UM ÚNICO ELEMENTO QUE ESTEJA REPETIDO VÁRIAS VEZES (break)
  218. List<String> palavrasList = new List<String>{'mesa', 'cadeira', 'mesa', 'sofa', 'banquinho', 'cadeira', 'armário'};
  219.  
  220. System.debug('Lista original: '+palavrasList);
  221.  
  222. for(Integer i=0; i<palavrasList.size(); i++) {
  223.   if(palavrasList[i] == 'mesa') {
  224.     palavrasList.remove(i);
  225.     break;
  226.   }
  227. }
  228. System.debug('Lista pós remoção: '+palavrasList);
  229.  
  230. //************************************************************/
  231. /*
  232. Exercício: Construir um método estático em que é passado como argumento uma lista de palavras, que contém palavras repetidas. O método deverá receber 2 argumentos, sendo o 1º essa lista, e o segundo, a palavra que se quer que sejam eliminadas as repetições.
  233. */
  234. //************************************************************/
  235. //Criando um map e visualizando o value a partir da chave
  236. Map<String, String> mapa = new Map<String, String>();
  237.  
  238. mapa.put('nome', 'Airton');
  239. mapa.put('idade', '46');
  240. mapa.put('telefone', '19998766567');
  241. System.debug(mapa);
  242. System.debug('Obtendo o valor da chave "nome": '+mapa.get('nome'));
  243. //************************************************************/
  244. //Iterando um map pelas suas chaves
  245. Map<String, String> mapa = new Map<String, String>();
  246.  
  247. mapa.put('nome', 'Airton');
  248. mapa.put('idade', '46');
  249. mapa.put('telefone', '19998766567');
  250. for(String chave:mapa.keySet()){
  251.   System.debug('A chave é '+chave+' para o valor -> '+mapa.get(chave));
  252. }
  253. System.debug(mapa);
  254. System.debug('Obtendo o valor da chave "nome": '+mapa.get('nome'));
  255. //************************************************************/
  256. //Mostrando criação de Map e atribuindo chaves do map a um Set
  257.  
  258. Map<String, String> mapa = new Map<String, String>();
  259.  
  260. mapa.put('nome', 'Airton');
  261. mapa.put('idade', '46');
  262. mapa.put('telefone', '19998766567');
  263. Set<String> chaves = mapa.keySet();
  264. System.debug(chaves);
  265. //************************************************************/
  266. //Criando 10 oportunidades utilizando loop e inserindo em massa por meio da lista
  267. //Convertendo a lista gravada em Map com chave = Id e value = sObject
  268.  
  269. List<Opportunity> listaOportunidades = new List<Opportunity>();
  270. Date closeDate = Date.today().addDays(1);
  271. for(Integer i=11;i<=20;i++){
  272.   Opportunity op = new Opportunity(Name = 'Oportunidade nº '+String.valueOf(i));
  273.   op.StageName = 'Prospecting';
  274.   op.CloseDate = closeDate;
  275.   listaOportunidades.add(op);
  276. }
  277. insert listaOportunidades;
  278.  
  279. Map<Id, Opportunity> oppMap = new Map<Id, Opportunity>(listaOportunidades);
  280. for(Id chave:oppMap.keySet()){
  281.   System.debug('Chave -> '+chave+' // Opp -> '+oppMap.get(chave));
  282. }
  283. Set<Id> setIdsOpps = new Set<Id>(oppMap.keySet());
  284.   for(Id chave:setIdsOpps){
  285.   System.debug('Id -> '+chave);
  286. }
  287. //************************************************************/
  288. //Criando sobjects Filial__c utilizando dados das contas mães relacionadas
  289. List<Account> listaContas = [SELECT Name, phone, Id FROM Account LIMIT 5];
  290. List<Filial__c> listaFiliais = new List<Filial__c>();
  291. for(Account a:listaContas){
  292.     String email = a.Name.substringBefore(' ')+'_filial@'+a.Name.substringBefore(' ')+'.com.br';
  293.     Filial__c f = new Filial__c();
  294.     f.Name = 'Filial da conta '+a.Name;
  295.     f.Phone__c = a.Phone;
  296.     f.Email__c = email;
  297.     f.Account__c = a.Id;
  298.  
  299.     listaFiliais.add(f);
  300. }
  301. insert listaFiliais;
  302.  
  303.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement