Estruturas de Dados Básicas

1,206 views
1,103 views

Published on

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,206
On SlideShare
0
From Embeds
0
Number of Embeds
312
Actions
Shares
0
Downloads
50
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Estruturas de Dados Básicas

  1. 1. Tecnologia em Sistemas para Internet - IFMSAula 02 – Estruturas de Dados Básicas Estruturas de Dados Prof.º Msc. Sidney Roberto de Sousa
  2. 2. Sumário● Tipos numéricos● Strings● Matrizes unidimensionais● Matrizes multidimensionais Tec. em Sistemas para Internet - IFMS 2
  3. 3. Tipos Numéricos● São tipos de dados utilizados para se armazenar valores numéricos● São tipos numéricos na linguagem Java: – byte – short – int – long – float – double Tec. em Sistemas para Internet - IFMS 3
  4. 4. Tipo byte// O tipo byte pode armazenar inteiros entre [-128..127]byte umByte = 0b00000011; // Associa o valor decimal 3 à variável umByteSystem.out.println(umByte);int umInteiro = umByte << 1; // Aplica a operação shift left na // variável umByte, fazendo com o que o // valor da variável seja multiplicado // por 2 (Por quê?)System.out.println(umInteiro);byte outroByte = 0b00000001;umInteiro = umByte + outroByte;System.out.println(umInteiro);byte byteResultante = (byte) (umByte + outroByte);umInteiro = byteResultante >> 1; // Que valor a variável umInteiro irá // receber?System.out.println(umInteiro); Tec. em Sistemas para Internet - IFMS 4
  5. 5. Tipo bytebyte umByte = 0b00000010;byte outroByte = 0b00000100;int inteiroResultante = umByte | outroByte; // Realiza uma operação OR // bit a bitSystem.out.println(inteiroResultante);inteiroResultante = umByte & outroByte; // Realiza uma operação AND // bit a bitSystem.out.println(inteiroResultante); Tec. em Sistemas para Internet - IFMS 5
  6. 6. Tipo short// O tipo short pode armazenar inteiros entre [-32768..32767],//sendo que uma variável deste tipo ocupa 2 bytes de memória.short numeroPequeno = 127;short outroNumeroPequeno = 73;// Por questões de segurança, operações sobre dois valoresinteiros short sempre resultam em um valor do tipo int. Assim, alinha abaixo gera um erro.short resultado = numeroPequeno + outroNumeroPequeno;System.out.println(resultado); Tec. em Sistemas para Internet - IFMS 6
  7. 7. Tipo shortshort numeroPequeno = 127;short outroNumeroPequeno = 73;int resultado = numeroPequeno + outroNumeroPequeno;System.out.println(resultado);short resultadoShort = (short) (numeroPequeno + outroNumeroPequeno);System.out.println(resultadoShort); Tec. em Sistemas para Internet - IFMS 7
  8. 8. Tipo int// O tipo int pode armazenar inteiros entre// [-2.147.483.648..2.147.483.647], sendo que uma variável do// tipo int utiliza 4 bytes de memória.int numeroA = 1000567;int numeroB = 29461201;int resultado = numeroA * numeroB;// resulta em 1544948519, valor este suportado pelo tipo intSystem.out.println(resultado); Tec. em Sistemas para Internet - IFMS 8
  9. 9. Tipo long// O tipo long pode armazenar inteiros entre// [-9.223.372.036.854.775.808..9.223.372.036.854.775.807],// sendo que uma variável do tipo long utiliza 8 bytes de memória.long numero = System.currentTimeMillis();long outroNumero = numero * 1000;System.out.println(outroNumero); Tec. em Sistemas para Internet - IFMS 9
  10. 10. Tipo float// O tipo float pode armazenar inteiros entre//[1.4e-45..340.282.346.638.528.860.000.000.000.000.000.000.000,000000],// sendo que uma variável do tipo float utiliza 4 bytes de memória.float numeroPontoFlutuante = 223.23; // Esta associação resultará em erro!float outroNumeroDePontoFlutuante = 223.23f; // Ok!// Variáveis do tipo float podem receber valores inteiros, uma vez que// na matemática o conjunto dos números inteiros está sub-contido no// conjunto dos números reais.float maisUmNumeroDePontoFlutuante = 557; Tec. em Sistemas para Internet - IFMS 10
  11. 11. Tipo double// O tipo double pode armazenar inteiros entre// [4.9e-324..1.7976931348623157e308], sendo que uma variável do// tipo double utiliza 8 bytes de memória.// Pode receber um valor inteirodouble numeroPontoFlutuante = System.currentTimeMillis();double valorPotencia = Math.pow(numeroPontoFlutuante, 2);System.out.println(valorPotencia);numeroPontoFlutuante = 223.23; // Não resulta em erro. Tec. em Sistemas para Internet - IFMS 11
  12. 12. Strings// Uma string é uma cadeia (matriz unidimensional) de caracteres.// Em Java, devemos utilizar a classe String para realizar operações com// strings.// Esta é a menor string possível, uma string de tamanho zero ou string// vazia.String umaString = "";// O método isEmpty da classe String retorna true caso a string esteja// vazia ou false c.c.boolean stringVazia = umaString.isEmpty();System.out.println(stringVazia); // Imprime true Tec. em Sistemas para Internet - IFMS 12
  13. 13. StringsString umaString = "Olá, mundo! Eu sou uma string!";// O método length da classe String retorna o número decaracteres imprimíveis e não imprimíveis que uma string possui.int tamanhoString = umaString.length();System.out.println("A string " + umaString + " possui " +tamanhoString + " caracteres."); Tec. em Sistemas para Internet - IFMS 13
  14. 14. StringsString umaString = "Olá, mundo! Eu sou uma string!";char caractere = umaString.charAt(0); // Ocaractere = umaString.charAt(umaString.length() - 1); // !String parteDaString = umaString.substring(11); // " Eu sou umastring!"parteDaString = umaString.substring(0, 11); // "Olá, mundo!" Tec. em Sistemas para Internet - IFMS 14
  15. 15. StringsString primeiraParte = "Agora me sinto ";String segundaParte = " como uma string completa!";// "Agora me sinto como uma string completa!"String stringCompleta = primeiraParte + segundaParte;stringCompleta = "A linguagem Java surgiu nos anos ";int anos = 90;// O resultado da concatenação de uma string com um número// resulta em uma stringstringCompleta += anos;// "A linguagem Java surgiu nos anos 90"System.out.println(stringCompleta); Tec. em Sistemas para Internet - IFMS 15
  16. 16. StringsString umaString = "Eu sou uma string";String outraString = umaString;// Strings podem ser comparadas com os operadores comunsboolean saoIguais = umaString == outraString; // true// O método toLowerCase da classe String converte todos os caracteres da// string em minúsculosString stringMinusculos = umaString.toLowerCase();// O método toUpperCase da classe String converte todos os caracteres da// string em maiúsculosString stringMaiusculos = umaString.toUpperCase();saoIguais = stringMinusculos == stringMaiusculos; // false// O método equalsIgnoreCase da classe String compara uma string com// outra desconsiderando se os caracteres estão em caixa alta ou baixa.saoIguais = stringMinusculos.equalsIgnoreCase(stringMaiusculos); // true Tec. em Sistemas para Internet - IFMS 16
  17. 17. StringsString umaString = "Eu sou uma string";// O método replace da classe String substitui todas as ocorrências// de uma substring por outra desejada.String outraString = umaString.replace("string", "abóbora");// "Eu sou uma abóbora"System.out.println(outraString);umaString = "Nove queijos, oito queijos, sete queijos";outraString = umaString.replace("queijos", "pratos");// "Nove pratos, oito pratos, sete pratos"System.out.println(outraString); Tec. em Sistemas para Internet - IFMS 17
  18. 18. StringsString umaString = "mato capim arbusto árvore bicho palha folhas";// O método contains da classe String verifica a existência de uma// substring na string pesquisada.boolean temBichoNesteMato = umaString.contains("bicho");System.out.println(temBichoNesteMato); // true Tec. em Sistemas para Internet - IFMS 18
  19. 19. StringsString umaString = " você pode remover estes caracteres em branco,por gentileza? ";// O método trim da classe String remove os caracteres em branco no// início e no fim da string.umaString = umaString.trim(); Tec. em Sistemas para Internet - IFMS 19
  20. 20. Matrizes Unidimensionais// Matrizes unidimensionais (ou vetores) são estruturas de dados// que representam uma coleção de elementos, onde cada elemento// é representado por uma única chaveint[] matrizUnidimensional = { 11, 28, 53, 4 };// Percorre a matriz unidimensionalfor (int i = 0; i < matrizUnidimensional.length; i++) { // matrizUnidimensional[i] é um elemento do vetor // matrizUnidimensional, sendo que i é a sua chave única System.out.println(matrizUnidimensional[i]);} Tec. em Sistemas para Internet - IFMS 20
  21. 21. Matrizes Unidimensionaisint[] matrizUnidimensional = { 1, 2, 3, 4 };// É possível utilizar o laço for each para percorrer matrizes.// Porém, quando se utiliza um laço for each para percorrer uma// matriz, os elementos da matriz não podem ser alterados.for (int elemento : matrizUnidimensional) { System.out.println(elemento); elemento = 0; // Não surtirá efeito!} Tec. em Sistemas para Internet - IFMS 21
  22. 22. Matrizes UnidimensionaisString umaString = "Primeiro elemento, segundo elemento, terceiroelemento, quarto elemento, quinto elemento";/** O método split da classe String quebra uma string exatamente nos* pontos de ocorrência de uma determinada substring, retornando assim* uma matriz unidimensional de strings (partes da string original)*/String[] matrizDeStrings = umaString.split(", ");for (String elemento : matrizDeStrings) { System.out.println(elemento);} Tec. em Sistemas para Internet - IFMS 22
  23. 23. Matrizes Unidimensionais// Declara de uma matriz unidimensional de tamanho 10 de forma// explícita.int[] matrizUnidimensional = new int[10];// Declara uma matriz unidimensional de tamanho 8 de formaimplícitaint[] outraMatrizUnidimensional = { 1, 2, 3, 4, 5, 6, 7, 8 }; Tec. em Sistemas para Internet - IFMS 23
  24. 24. Matrizes Multidimensionais/*** Declara uma matriz bidimensional de dimensões implícitas 3 x 3.*/int[][] matrizBidimensional = { { 1, 2, 3 }, { 4, 5, 6 }, { 7, 8, 9 } };/*** Os laços abaixo imprimirão no console:* 1 2 3* 4 5 6* 7 8 9*/for (int i = 0; i < matrizBidimensional.length; i++) { for (int j = 0; j < matrizBidimensional[i].length; j++) { System.out.print(matrizBidimensional[i][j] + "t"); } System.out.println("");} Tec. em Sistemas para Internet - IFMS 24
  25. 25. Matrizes Multidimensionais/*** Declara uma matriz bidimensional de dimensões variáveis.*/int[][] matrizBidimensional = { { 1, 2, 3, 4 }, { 5, 6 }, { 7, 8, 9 } };for (int i = 0; i < matrizBidimensional.length; i++) { for (int j = 0; j < matrizBidimensional[i].length; j++) { System.out.print(matrizBidimensional[i][j] + "t"); } System.out.println("");} Tec. em Sistemas para Internet - IFMS 25
  26. 26. Matrizes Multidimensionais/** * Declara uma matriz bidimensional com dimensões explícitas de 4 x 3. */int[][] matrizBidimensional = new int[4][3];for (int i = 0; i < matrizBidimensional.length; i++) { for (int j = 0; j < matrizBidimensional[i].length; j++) { matrizBidimensional[i][j] = i + j; }}/** * Exibe os valores: * 012 * 123 * 234 * 345 */for (int i = 0; i < matrizBidimensional.length; i++) { for (int j = 0; j < matrizBidimensional[i].length; j++) { System.out.print(matrizBidimensional[i][j] + "t"); } System.out.println("");} Tec. em Sistemas para Internet - IFMS 26
  27. 27. Matrizes Multidimensionais// Declara uma matriz de strings com dimensões implícitas de 3 x 3String[][] matrizStrings = { { "linha 1 coluna 1", "linha 1 coluna 2", "linha 1 coluna 3" }, { "linha 2 coluna 1", "linha 2 coluna 2", "linha 2 coluna 3" }, { "linha 3 coluna 1", "linha 3 coluna 2", "linha 3 coluna 3" },}; Tec. em Sistemas para Internet - IFMS 27
  28. 28. Matrizes Multidimensionaisint[][] matriz = { { 1, 2, 3 }, { 4, 5, 6 }, { 7, 8, 9 } };// Também é possível utilizar laços for each para percorrer// matrizes multidimensionais.for (int[] linha : matriz) { for (int elemento : linha) { System.out.print(elemento + "t"); } System.out.println("");} Tec. em Sistemas para Internet - IFMS 28
  29. 29. Matrizes Multidimensionais// Que tal uma matriz tridimensional de dimensões 2 x 2 x 3? :Dint[][][] matriz = { { { 1, 2, 3 }, { 4, 5, 6 } }, { { 7, 8, 9 }, { 10, 11, 12 } }}; Tec. em Sistemas para Internet - IFMS 29
  30. 30. Matrizes Multidimensionais// Percorrendo a matriz tridimensionalfor (int[][] subMatriz : matriz) { for (int[] linha : subMatriz) { for (int elemento : linha) { System.out.print(elemento + "t"); } System.out.println(""); } System.out.println("");} Tec. em Sistemas para Internet - IFMS 30

×