SlideShare uma empresa Scribd logo
1 de 30
Baixar para ler offline
Tecnologia em Sistemas para Internet - IFMS




Aula 02 – Estruturas de Dados Básicas


             Estruturas de Dados
        Prof.º Msc. Sidney Roberto de Sousa
Sumário

●   Tipos numéricos
●   Strings
●   Matrizes unidimensionais
●   Matrizes multidimensionais




                  Tec. em Sistemas para Internet - IFMS   2
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
Tipo byte
// O tipo byte pode armazenar inteiros entre [-128..127]
byte umByte = 0b00000011; // Associa o valor decimal 3 à variável umByte
System.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
Tipo byte
byte umByte = 0b00000010;
byte outroByte = 0b00000100;
int inteiroResultante = umByte | outroByte; // Realiza uma operação OR
                                                              // bit a bit
System.out.println(inteiroResultante);
inteiroResultante = umByte & outroByte; // Realiza uma operação AND
                                                       // bit a bit
System.out.println(inteiroResultante);




                            Tec. em Sistemas para Internet - IFMS            5
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 valores
inteiros short sempre resultam em um valor do tipo int. Assim, a
linha abaixo gera um erro.
short resultado = numeroPequeno + outroNumeroPequeno;
System.out.println(resultado);




                       Tec. em Sistemas para Internet - IFMS       6
Tipo short
short 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
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 int
System.out.println(resultado);




                          Tec. em Sistemas para Internet - IFMS   8
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
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
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 inteiro
double 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
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
Strings
String umaString = "Olá, mundo! Eu sou uma string!";
// O método length da classe String retorna o número de
caracteres 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
Strings
String umaString = "Olá, mundo! Eu sou uma string!";
char caractere = umaString.charAt(0); // 'O'
caractere = umaString.charAt(umaString.length() - 1); // '!'
String parteDaString = umaString.substring(11); // " Eu sou uma
string!"
parteDaString = umaString.substring(0, 11); // "Olá, mundo!"




                       Tec. em Sistemas para Internet - IFMS      14
Strings
String 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 string
stringCompleta += anos;
// "A linguagem Java surgiu nos anos 90"
System.out.println(stringCompleta);



                           Tec. em Sistemas para Internet - IFMS   15
Strings
String umaString = "Eu sou uma string";
String outraString = umaString;
// Strings podem ser comparadas com os operadores comuns
boolean saoIguais = umaString == outraString; // true


// O método toLowerCase da classe String converte todos os caracteres da
// string em minúsculos
String stringMinusculos = umaString.toLowerCase();
// O método toUpperCase da classe String converte todos os caracteres da
// string em maiúsculos
String 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
Strings
String 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
Strings
String 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
Strings
String 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
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 chave
int[] matrizUnidimensional = { 11, 28, 53, 4 };
// Percorre a matriz unidimensional
for (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
Matrizes Unidimensionais
int[] 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
Matrizes Unidimensionais
String umaString = "Primeiro elemento, segundo elemento, terceiro
elemento, 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
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 forma
implícita
int[] outraMatrizUnidimensional = { 1, 2, 3, 4, 5, 6, 7, 8 };




                       Tec. em Sistemas para Internet - IFMS     23
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
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
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
Matrizes Multidimensionais
// Declara uma matriz de strings com dimensões implícitas de 3 x 3
String[][] 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
Matrizes Multidimensionais
int[][] 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
Matrizes Multidimensionais
// Que tal uma matriz tridimensional de dimensões 2 x 2 x 3? :D
int[][][] matriz = {
     {
          { 1, 2, 3 },
          { 4, 5, 6 }
     },
     {
          { 7, 8, 9 },
          { 10, 11, 12 }
     }
};



                           Tec. em Sistemas para Internet - IFMS   29
Matrizes Multidimensionais
// Percorrendo a matriz tridimensional
for (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

Mais conteúdo relacionado

Mais procurados

Mais procurados (17)

Java6
Java6Java6
Java6
 
4. metodos de contrucao de algoritmo
4. metodos de contrucao de algoritmo4. metodos de contrucao de algoritmo
4. metodos de contrucao de algoritmo
 
Python Orientação a Objeto
Python Orientação a ObjetoPython Orientação a Objeto
Python Orientação a Objeto
 
POO - Aula 09 - Herança
POO - Aula 09 - HerançaPOO - Aula 09 - Herança
POO - Aula 09 - Herança
 
160277 redes neurais artificiais
160277 redes neurais artificiais160277 redes neurais artificiais
160277 redes neurais artificiais
 
Pged 03
Pged 03Pged 03
Pged 03
 
Redes neurais e lógica fuzzy
Redes neurais e lógica fuzzyRedes neurais e lógica fuzzy
Redes neurais e lógica fuzzy
 
Estruturas de Dados em C#
Estruturas de Dados em C#Estruturas de Dados em C#
Estruturas de Dados em C#
 
Programação orientada a objetos - IV
Programação orientada a objetos - IVProgramação orientada a objetos - IV
Programação orientada a objetos - IV
 
Programação orientada a objetos – III
Programação orientada a objetos – IIIProgramação orientada a objetos – III
Programação orientada a objetos – III
 
Orientação a Objetos em Python
Orientação a Objetos em PythonOrientação a Objetos em Python
Orientação a Objetos em Python
 
Java4
Java4Java4
Java4
 
Java - Aula 2 - Orientado a Objetos
Java - Aula 2 - Orientado a ObjetosJava - Aula 2 - Orientado a Objetos
Java - Aula 2 - Orientado a Objetos
 
Redes Neurais Artificiais: Regras de Aprendizado
Redes Neurais Artificiais: Regras de AprendizadoRedes Neurais Artificiais: Regras de Aprendizado
Redes Neurais Artificiais: Regras de Aprendizado
 
Apresentacao
ApresentacaoApresentacao
Apresentacao
 
Exercícios de programação orientado a objeto
Exercícios de programação orientado a objetoExercícios de programação orientado a objeto
Exercícios de programação orientado a objeto
 
Java 16
Java 16Java 16
Java 16
 

Semelhante a Tipos de Dados e Estruturas em Java

Semelhante a Tipos de Dados e Estruturas em Java (20)

ASP.Net Módulo 2
ASP.Net   Módulo 2ASP.Net   Módulo 2
ASP.Net Módulo 2
 
Classe integer-float-byte-short-long-double
Classe integer-float-byte-short-long-doubleClasse integer-float-byte-short-long-double
Classe integer-float-byte-short-long-double
 
Aula3
Aula3Aula3
Aula3
 
Android - Dicas de Performance
Android - Dicas de PerformanceAndroid - Dicas de Performance
Android - Dicas de Performance
 
Java8
Java8Java8
Java8
 
minicurso-python-getmeeting.pdf
minicurso-python-getmeeting.pdfminicurso-python-getmeeting.pdf
minicurso-python-getmeeting.pdf
 
Algoritmos de ordenação
Algoritmos de ordenaçãoAlgoritmos de ordenação
Algoritmos de ordenação
 
Aula 10 de algoritmos com raciocínio lógico e desenvolvimento de código
Aula 10 de algoritmos com raciocínio lógico e desenvolvimento de códigoAula 10 de algoritmos com raciocínio lógico e desenvolvimento de código
Aula 10 de algoritmos com raciocínio lógico e desenvolvimento de código
 
Linguagens de Programação II - Aula 3
Linguagens de Programação II - Aula 3Linguagens de Programação II - Aula 3
Linguagens de Programação II - Aula 3
 
Java 06 Strings Arrays
Java 06 Strings ArraysJava 06 Strings Arrays
Java 06 Strings Arrays
 
Estrutura de linguagem C++
Estrutura de linguagem C++Estrutura de linguagem C++
Estrutura de linguagem C++
 
String
StringString
String
 
Java Desktop
Java DesktopJava Desktop
Java Desktop
 
Algoritmos Aula 11
Algoritmos Aula 11Algoritmos Aula 11
Algoritmos Aula 11
 
String
StringString
String
 
As Novidades Do C# 4.0 - NetPonto
As Novidades Do C# 4.0 - NetPontoAs Novidades Do C# 4.0 - NetPonto
As Novidades Do C# 4.0 - NetPonto
 
Python para Programadores
Python para ProgramadoresPython para Programadores
Python para Programadores
 
Java3
Java3Java3
Java3
 
Fascículo1java
Fascículo1javaFascículo1java
Fascículo1java
 
05 classes utilitarias
05   classes utilitarias05   classes utilitarias
05 classes utilitarias
 

Mais de Sidney Roberto

Precisamos falar sobre MERN stack
Precisamos falar sobre MERN stackPrecisamos falar sobre MERN stack
Precisamos falar sobre MERN stackSidney Roberto
 
Personagens negros na cultura nerd
Personagens negros na cultura nerdPersonagens negros na cultura nerd
Personagens negros na cultura nerdSidney Roberto
 
Mantendo os dados do seu app web offline com PouchDB
Mantendo os dados do seu app web offline com PouchDBMantendo os dados do seu app web offline com PouchDB
Mantendo os dados do seu app web offline com PouchDBSidney Roberto
 
Regulamento da batalha campal do DCN IV
Regulamento da batalha campal do DCN IVRegulamento da batalha campal do DCN IV
Regulamento da batalha campal do DCN IVSidney Roberto
 
Regulamento dos concursos de cosplay e cospobre do DCN IV
Regulamento dos concursos de cosplay e cospobre do DCN IVRegulamento dos concursos de cosplay e cospobre do DCN IV
Regulamento dos concursos de cosplay e cospobre do DCN IVSidney Roberto
 
Regulamento Cosplay e Cospobre - DCN 3 IFMS-AQ
Regulamento Cosplay e Cospobre - DCN 3 IFMS-AQRegulamento Cosplay e Cospobre - DCN 3 IFMS-AQ
Regulamento Cosplay e Cospobre - DCN 3 IFMS-AQSidney Roberto
 
Tecnologias e Mercado de Trabalho
Tecnologias e Mercado de TrabalhoTecnologias e Mercado de Trabalho
Tecnologias e Mercado de TrabalhoSidney Roberto
 
Introdução à Programação de Computadores com Python
Introdução à Programação de Computadores com PythonIntrodução à Programação de Computadores com Python
Introdução à Programação de Computadores com PythonSidney Roberto
 
Palestra de boas vindas aos estudantes do curso TSI do IFMS Aquidauana
Palestra de boas vindas aos estudantes do curso TSI do IFMS AquidauanaPalestra de boas vindas aos estudantes do curso TSI do IFMS Aquidauana
Palestra de boas vindas aos estudantes do curso TSI do IFMS AquidauanaSidney Roberto
 
Web Scraping: aplicações nos negócios e na ciência
Web Scraping: aplicações nos negócios e na ciênciaWeb Scraping: aplicações nos negócios e na ciência
Web Scraping: aplicações nos negócios e na ciênciaSidney Roberto
 
Regulamento do Concurso de Cosplay - Dia da Cultura Nerd IFMS-AQ
Regulamento do Concurso de Cosplay - Dia da Cultura Nerd IFMS-AQRegulamento do Concurso de Cosplay - Dia da Cultura Nerd IFMS-AQ
Regulamento do Concurso de Cosplay - Dia da Cultura Nerd IFMS-AQSidney Roberto
 
Tutorial - Como criar sua primeira app para Android
Tutorial - Como criar sua primeira app para AndroidTutorial - Como criar sua primeira app para Android
Tutorial - Como criar sua primeira app para AndroidSidney Roberto
 
Minha opinião sobre o sistema educacional de base brasileiro
Minha opinião sobre o sistema educacional de base brasileiroMinha opinião sobre o sistema educacional de base brasileiro
Minha opinião sobre o sistema educacional de base brasileiroSidney Roberto
 
Apostila - Linguagem de Programação I
Apostila - Linguagem de Programação IApostila - Linguagem de Programação I
Apostila - Linguagem de Programação ISidney Roberto
 
Vamos aprender algo diferente? Introdução à linguagem Python (parte 2)
Vamos aprender algo diferente? Introdução à linguagem Python (parte 2)Vamos aprender algo diferente? Introdução à linguagem Python (parte 2)
Vamos aprender algo diferente? Introdução à linguagem Python (parte 2)Sidney Roberto
 
Vamos aprender algo diferente? Introdução à linguagem Python (aula 1)
Vamos aprender algo diferente? Introdução à linguagem Python (aula 1)Vamos aprender algo diferente? Introdução à linguagem Python (aula 1)
Vamos aprender algo diferente? Introdução à linguagem Python (aula 1)Sidney Roberto
 
Manipulação de Datas em Java
Manipulação de Datas em JavaManipulação de Datas em Java
Manipulação de Datas em JavaSidney Roberto
 

Mais de Sidney Roberto (20)

Precisamos falar sobre MERN stack
Precisamos falar sobre MERN stackPrecisamos falar sobre MERN stack
Precisamos falar sobre MERN stack
 
Personagens negros na cultura nerd
Personagens negros na cultura nerdPersonagens negros na cultura nerd
Personagens negros na cultura nerd
 
Mantendo os dados do seu app web offline com PouchDB
Mantendo os dados do seu app web offline com PouchDBMantendo os dados do seu app web offline com PouchDB
Mantendo os dados do seu app web offline com PouchDB
 
Regulamento da batalha campal do DCN IV
Regulamento da batalha campal do DCN IVRegulamento da batalha campal do DCN IV
Regulamento da batalha campal do DCN IV
 
Regulamento dos concursos de cosplay e cospobre do DCN IV
Regulamento dos concursos de cosplay e cospobre do DCN IVRegulamento dos concursos de cosplay e cospobre do DCN IV
Regulamento dos concursos de cosplay e cospobre do DCN IV
 
Regulamento Cosplay e Cospobre - DCN 3 IFMS-AQ
Regulamento Cosplay e Cospobre - DCN 3 IFMS-AQRegulamento Cosplay e Cospobre - DCN 3 IFMS-AQ
Regulamento Cosplay e Cospobre - DCN 3 IFMS-AQ
 
Tecnologias e Mercado de Trabalho
Tecnologias e Mercado de TrabalhoTecnologias e Mercado de Trabalho
Tecnologias e Mercado de Trabalho
 
Introdução à Programação de Computadores com Python
Introdução à Programação de Computadores com PythonIntrodução à Programação de Computadores com Python
Introdução à Programação de Computadores com Python
 
Palestra de boas vindas aos estudantes do curso TSI do IFMS Aquidauana
Palestra de boas vindas aos estudantes do curso TSI do IFMS AquidauanaPalestra de boas vindas aos estudantes do curso TSI do IFMS Aquidauana
Palestra de boas vindas aos estudantes do curso TSI do IFMS Aquidauana
 
Web Scraping: aplicações nos negócios e na ciência
Web Scraping: aplicações nos negócios e na ciênciaWeb Scraping: aplicações nos negócios e na ciência
Web Scraping: aplicações nos negócios e na ciência
 
Regulamento do Concurso de Cosplay - Dia da Cultura Nerd IFMS-AQ
Regulamento do Concurso de Cosplay - Dia da Cultura Nerd IFMS-AQRegulamento do Concurso de Cosplay - Dia da Cultura Nerd IFMS-AQ
Regulamento do Concurso de Cosplay - Dia da Cultura Nerd IFMS-AQ
 
Tutorial - Como criar sua primeira app para Android
Tutorial - Como criar sua primeira app para AndroidTutorial - Como criar sua primeira app para Android
Tutorial - Como criar sua primeira app para Android
 
Minha opinião sobre o sistema educacional de base brasileiro
Minha opinião sobre o sistema educacional de base brasileiroMinha opinião sobre o sistema educacional de base brasileiro
Minha opinião sobre o sistema educacional de base brasileiro
 
Apostila - Linguagem de Programação I
Apostila - Linguagem de Programação IApostila - Linguagem de Programação I
Apostila - Linguagem de Programação I
 
Vamos aprender algo diferente? Introdução à linguagem Python (parte 2)
Vamos aprender algo diferente? Introdução à linguagem Python (parte 2)Vamos aprender algo diferente? Introdução à linguagem Python (parte 2)
Vamos aprender algo diferente? Introdução à linguagem Python (parte 2)
 
Listas (parte 1)
Listas (parte 1)Listas (parte 1)
Listas (parte 1)
 
Vamos aprender algo diferente? Introdução à linguagem Python (aula 1)
Vamos aprender algo diferente? Introdução à linguagem Python (aula 1)Vamos aprender algo diferente? Introdução à linguagem Python (aula 1)
Vamos aprender algo diferente? Introdução à linguagem Python (aula 1)
 
Fatores Humanos
Fatores HumanosFatores Humanos
Fatores Humanos
 
Laços de Repetição
Laços de RepetiçãoLaços de Repetição
Laços de Repetição
 
Manipulação de Datas em Java
Manipulação de Datas em JavaManipulação de Datas em Java
Manipulação de Datas em Java
 

Tipos de Dados e Estruturas em Java

  • 1. Tecnologia em Sistemas para Internet - IFMS Aula 02 – Estruturas de Dados Básicas Estruturas de Dados Prof.º Msc. Sidney Roberto de Sousa
  • 2. Sumário ● Tipos numéricos ● Strings ● Matrizes unidimensionais ● Matrizes multidimensionais Tec. em Sistemas para Internet - IFMS 2
  • 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. Tipo byte // O tipo byte pode armazenar inteiros entre [-128..127] byte umByte = 0b00000011; // Associa o valor decimal 3 à variável umByte System.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. Tipo byte byte umByte = 0b00000010; byte outroByte = 0b00000100; int inteiroResultante = umByte | outroByte; // Realiza uma operação OR // bit a bit System.out.println(inteiroResultante); inteiroResultante = umByte & outroByte; // Realiza uma operação AND // bit a bit System.out.println(inteiroResultante); Tec. em Sistemas para Internet - IFMS 5
  • 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 valores inteiros short sempre resultam em um valor do tipo int. Assim, a linha abaixo gera um erro. short resultado = numeroPequeno + outroNumeroPequeno; System.out.println(resultado); Tec. em Sistemas para Internet - IFMS 6
  • 7. Tipo short short 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. 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 int System.out.println(resultado); Tec. em Sistemas para Internet - IFMS 8
  • 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. 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. 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 inteiro double 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. 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. Strings String umaString = "Olá, mundo! Eu sou uma string!"; // O método length da classe String retorna o número de caracteres 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. Strings String umaString = "Olá, mundo! Eu sou uma string!"; char caractere = umaString.charAt(0); // 'O' caractere = umaString.charAt(umaString.length() - 1); // '!' String parteDaString = umaString.substring(11); // " Eu sou uma string!" parteDaString = umaString.substring(0, 11); // "Olá, mundo!" Tec. em Sistemas para Internet - IFMS 14
  • 15. Strings String 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 string stringCompleta += anos; // "A linguagem Java surgiu nos anos 90" System.out.println(stringCompleta); Tec. em Sistemas para Internet - IFMS 15
  • 16. Strings String umaString = "Eu sou uma string"; String outraString = umaString; // Strings podem ser comparadas com os operadores comuns boolean saoIguais = umaString == outraString; // true // O método toLowerCase da classe String converte todos os caracteres da // string em minúsculos String stringMinusculos = umaString.toLowerCase(); // O método toUpperCase da classe String converte todos os caracteres da // string em maiúsculos String 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. Strings String 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. Strings String 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. Strings String 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. 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 chave int[] matrizUnidimensional = { 11, 28, 53, 4 }; // Percorre a matriz unidimensional for (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. Matrizes Unidimensionais int[] 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. Matrizes Unidimensionais String umaString = "Primeiro elemento, segundo elemento, terceiro elemento, 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. 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 forma implícita int[] outraMatrizUnidimensional = { 1, 2, 3, 4, 5, 6, 7, 8 }; Tec. em Sistemas para Internet - IFMS 23
  • 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. 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. 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. Matrizes Multidimensionais // Declara uma matriz de strings com dimensões implícitas de 3 x 3 String[][] 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. Matrizes Multidimensionais int[][] 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. Matrizes Multidimensionais // Que tal uma matriz tridimensional de dimensões 2 x 2 x 3? :D int[][][] matriz = { { { 1, 2, 3 }, { 4, 5, 6 } }, { { 7, 8, 9 }, { 10, 11, 12 } } }; Tec. em Sistemas para Internet - IFMS 29
  • 30. Matrizes Multidimensionais // Percorrendo a matriz tridimensional for (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