Ofereço ajuda em Java, C/C++, Python, C#, LISP, AutoLisp, AutoCAD
+55 (062) 98553-6711
Ofereço ajuda em PHP, Python, C#, JavaScript, Laravel, Google Ads e SEO
+55 (062) 98243-1195

Você está aqui: Java ::: Coleções (Collections) ::: LinkedList

Adicionando elementos no início de uma LinkedList

Quantidade de visualizações: 8130 vezes


O trecho de código a seguir mostra como adicionar elementos no início de um lista ligada (objeto da classe LinkedList). Para isso podemos usar o método addFirst(). Veja ainda como usar um ListIterator para percorrer a lista e exibir os elementos. Outra técnica que você perceberá é o uso de unboxing dentro do laço while:
import java.util.*;

public class Estudos{ 
  public static void main(String args[]){ 
    // Cria uma LinkedList de Inteiros
    LinkedList<Integer> valores = new 
      LinkedList<Integer>();
    
    // adiciona valores no início da lista ligada 
    // usando o método addFirst()
    valores.addFirst(56);
    valores.addFirst(3);
    valores.addFirst(28);

    // obtém um ListIterator para percorrer toda a
    // lista ligada, começando no primeiro elemento
    ListIterator<Integer> iterador = 
      valores.listIterator(0);
    while(iterador.hasNext()){  
      // note o unboxing aqui
      int valor = iterador.next(); 
      System.out.println(valor); 
    }
  } 
}


Link para compartilhar na Internet ou com seus amigos:

Java ::: Fundamentos da Linguagem ::: Modificadores

Programação Orientada a Objetos em Java - Como usar o modificador de acesso public da linguagem Java

Quantidade de visualizações: 9984 vezes
O modificador de acesso public é aquele que permite o maior grau de acesso a um recurso Java (um recurso é uma classe, um método ou uma variável).

O único modificador de acesso permitido a uma classe não interna é public. Não é permitido usar outro modificador. Na ausência do modificador public, o acesso à classe será de pacote (package).

Quando usamos este modificador, as classes, métodos e variáveis podem ser acessadas a partir de qualquer outra classe sem qualquer restrição. Além disso, um método public pode ser sobrescrito (sofrer override) por qualquer subclasse da classe que o declara.

O método main() da aplicação é declarado public para que o ambiente de execução Java tenha acesso a ele. Declará-lo de outra forma fará com que a execução da aplicação se torne impossível.

Veja um exemplo de uma classe Java pública, com uma variável de instância pública e um método também público:

----------------------------------------------------------------------
Se precisar de ajuda para ajustar o código abaixo de acordo com as
suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar)

Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar
a manter o site livre de anúncios. Ficaremos eternamente gratos ;-)
Nosso PIX é: osmar@arquivodecodigos.com.br 
----------------------------------------------------------------------

package arquivodecodigos;

// uma classe pública
public class Cliente {
  // uma variável pública  
  public int codigo;
  
  // um construtor público
  public Cliente(){
    this.codigo = 532;
  }
  
  // um método público
  public int obterCodigoCliente(){
    return this.codigo;  
  }
}



Java ::: Java para Engenharia ::: Hidrologia e Hidráulica

Como calcular o volume de chuvas em Java - Fórmula do cálculo do volume de chuvas em Java

Quantidade de visualizações: 299 vezes
O estudo da Hidrologia passa, necessariamente, pelo cálculo do volume de chuvas em uma determinada região, ou bacia hidrológica. Assim, é comum ouvirmos alguém dizer que, em um determinado local, choveu 100 mm durante um determinado período. Mas o que isso significa?

O mês mais chuvoso em Goiânia é dezembro, com média de 229 milímetros de precipitação de chuva. Isso significa que, em uma área de 1 m2, a lâmina de água formada pela chuva que cai apresenta uma altura de 229 milímetros.

Como sabemos que o volume é a área multiplicada pela altura, tudo que temos a fazer é considerar a área de 1 m2 multiplicada pela altura da lâmina de água (convertida também para metros). Veja a fórmula:

\[\text{Volume} = \text{(Área da Base) x Altura}\]

Lembre-se de que volume pode ser retornado em litros, ou seja, 1 m3 = 1000 litros.

Veja agora o código Java completo que pede para o usuário informar a precipitação da chuva, ou seja, a altura da lâmina de água em milímetros e retorna o volume de água em litros.

----------------------------------------------------------------------
Se precisar de ajuda para ajustar o código abaixo de acordo com as
suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar)

Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar
a manter o site livre de anúncios. Ficaremos eternamente gratos ;-)
Nosso PIX é: osmar@arquivodecodigos.com.br 
----------------------------------------------------------------------

package estudos;
 
import java.util.Scanner;
 
public class Estudos {
  public static void main(String[] args) {
    // para ler a entrada do usuário
    Scanner entrada = new Scanner(System.in);
   
    // vamos pedir para o usuário informar a altura da lâmina
    // de água em milímetros
    System.out.print("Altura da lâmina de água em milímetros: ");
    double altura_lamina = Double.parseDouble(entrada.nextLine());

    // o primeiro passo é converter os milímetros da lâmina de água
    // para metros
    altura_lamina = altura_lamina / 1000.00;

    // agora que já temos a altura da lâmina em metros, vamos multiplicar
    // pela base (1 metro quadrado) para obtermos o volume da chuva por
    // metro quadrado
    double volume_chuva = (altura_lamina * 1.00) * 1000.00;

    // vamos mostrar o resultado
    System.out.println("O volume da chuva é: " + volume_chuva +
      " litros para cada metro quadrado");
  }
}

Ao executar este código Java nós teremos o seguinte resultado:

Altura da lâmina de água em milímetros: 229
O volume da chuva é: 229.0 litros para cada metro quadrado

Qual é o volume de 1 mm de chuva?

A altura pluviométrica é a espessura da lâmina d'água precipitada que cobre a região atingida pela chuva. Geralmente a unidade de medição é o milímetro (mm) porque o aparelho que mede a chuva, o pluviômetro, é lido em milímetros.

O pluviômetro é um aparelho meteorológico destinado a medir, em milímetros, a altura da lâmina de água gerada pela chuva que caiu numa área de 1 m2.

1 mm de chuva equivale a 1 litro de água, ou 1 dm3, considerando a área de 1 m2.


Java ::: Dicas & Truques ::: Data e Hora

Java para iniciantes - Como usar a classe Date em suas aplicações Java

Quantidade de visualizações: 14077 vezes
A classe Date pertence ao pacote java.util, e, embora muitos de seus métodos estejam em desuso (Deprecated), ainda encontraremos muito código Java que usa esta classe para trabalhar com datas e horas. Veja sua posição na hierarquia de classes Java:

----------------------------------------------------------------------
Se precisar de ajuda para ajustar o código abaixo de acordo com as
suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar)

Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar
a manter o site livre de anúncios. Ficaremos eternamente gratos ;-)
Nosso PIX é: osmar@arquivodecodigos.com.br 
----------------------------------------------------------------------

java.lang.Object
  java.util.Date

Esta classe implementa as interfaces Serializable, Cloneable e Comparable<Date> e suas subclasses conhecidas são Date, Time, Timestamp (todas do pacote java.sql). As informações abaixo podem ser encontradas na documentação da classe Date.

A classe Date representa um momento específico no tempo, com uma precisão de milisegundos.

Antes do JDK 1.1, esta classe tinha duas funções adicionais. Ela permitia a interpretação de datas como valores de ano, mês, dia, hora, minuto e segundo. Também permitia a formatação e parsing de strings de datas. Infelizmente, a API para estas funções não facilitava a internacionalização. Assim, a partir do JDK 1.1, a classe Calendar deve ser usada para converter entre campos de datas e horas e a classe DateFormat deve ser usada para formatar e fazer o parsing de strings de datas. Os métodos correspondentes a estas funções estão em desuso (Deprecated) na classe Date.

Embora a classe Date tenha sido projetada para refletir a hora universal coordenada (Coordinated Universal Time - UTC), ela pode não ser capaz de fazer isso corretamente, dependendo do sistema no qual a Java Virtual Machine esteja sendo executada. A grande maioria dos sistemas operacionais modernos assume que 1 dia = 24 × 60 × 60 = 86400 segundos em todos os casos. No UTC, contudo, de dois em dois anos, aproximadamente, há um segundo extra, chamado de "leap second" (a mesma idéia do ano bissexto). O leap second é sempre adicionado como o último segundo do dia e sempre nos dias 31 de dezembro ou 30 de junho. Por exemplo, o último minuto do ano de 1995 teve 61 segundos, graças ao segundo extra que foi adicionado. A maioria dos relógios dos computadores não são precisos o suficiente para refletir a distinção do leap second.

Alguns padrões de computadores são definidos em termos da hora de Greenwich (Greenwich mean time - GMT), que é o equivalente ao Universal Time (UT). GMT é o nome "civil" para o padrão, UT é o nome "científico" para o mesmo padrão. A distinção entre UTC e UT é que UTC é baseado em um relógio atômico e UT é baseado em observações astronômicas, o que para todos os propósitos práticos não traz diferença significativa. Devido à rotação da terra não ser uniforme (ela desacelera ou acelera de formas complicadas), O UT nem sempre flui uniformente. Segundos extras (Leap seconds) são inseridos conforme necessário no UTC de forma a mantê-lo dentro dos 0.9 segundos do UT1, que é uma versão do UT com algumas correções aplicadas. Há outros sistemas de datas e horas também; por exemplo, a escala de tempo pelo sistema de posicionamento global baseado em satélite (satellite-based global positioning system - GPS) é sincronizado com o UTC mas não é ajustado para os segundos extras.

Em todos os métodos da classe Date que aceitam ou retornam valores de ano, mês, dia, hora, minuto e segundos, as seguintes representações são usadas:


  • Um ano y é representado pelo inteiro y - 1900.

  • Um mês é representado por um inteiro na faixa de 0 a 11. 0 é janeiro, 1 é fevereiro e assim por diante; assim, 11 é dezembro.

  • Um dia (dia do mês) é representado por um inteiro na faixa de 1 a 31, como estamos acostumados.

  • Uma hora é representada por um inteiro na faixa de 0 a 23. Assim, a hora da meia-noite até 1 a.m. é a hora 0 e a hora do meio-dia até 1 p.m. é a hora 12.

  • Um minuto é representado por um inteiro na faixa de 0 a 59, como estamos acostumados.

  • Um segundo é representado por um inteiro na faixa de 0 a 61; os valores 60 e 61 ocorrem somente para os segundos extras (leap seconds) e somente nas implementações Java que realmente lidam com estes segundos corretamente. Devido à forma na qual leap seconds são apresentados atualmente, é pouco provável que dois leap seconds ocorrerão no mesmo minuto, mas esta especificação segue as convenções de datas e horas do ISO C.

  • Em todos os casos, argumentos fornecidos a estes métodos não precisam necessariamente estar nas faixas indicadas; por exemplo, uma data pode ser definida como 32 de janeiro e ser interpretada como 1º de fevereiro.




Java ::: Pacote java.lang ::: String

Apostila de Java Básico - Como usar o método replace() da classe String para efetuar a substituição de substrings em uma string

Quantidade de visualizações: 7925 vezes
A substituição de substrings, ou seja, pedaços de texto, é uma das tarefas mais comuns em programação. Em Java isso pode ser feito por meio do método replace() da classe String. Veja sua assinatura:

public String replace(CharSequence target, 
  CharSequence replacement)
Veja que tanto o parâmetro target quanto o parâmetro replacement são objetos da interface CharSequence. Algumas das classes que implementam esta interface são: CharBuffer, Segment, String, StringBuffer e StringBuilder. Isso quer dizer que podemos passar qualquer objeto destas classes para o método replace(). O parâmetro target contém a substring a ser substituída pela substring do parâmetro replacement. O retorno do método é uma nova string com as substituições aplicadas. Se não houver nenhuma substituição a string original é retornada.

Veja um trecho de código no qual usamos o método replace() para substituir todas as ocorrências de "C++" por "Java":

----------------------------------------------------------------------
Se precisar de ajuda para ajustar o código abaixo de acordo com as
suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar)

Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar
a manter o site livre de anúncios. Ficaremos eternamente gratos ;-)
Nosso PIX é: osmar@arquivodecodigos.com.br 
----------------------------------------------------------------------

public class Estudos {
  public static void main(String[] args) {
    String frase = "Programar em C++ é muito bom! Gosto muito de C++";
    System.out.println("Frase original: " + frase);
    
    // vamos substituir todas as ocorrências de "C++" por "Java"
    frase = frase.replace("C++", "Java");
    System.out.println("Depois da substituição: " + frase);
  }
}

Ao executarmos este código teremos o seguinte resultado:

Frase original: Programar em C++ é muito bom! Gosto 
  muito de C++
Depois da substituição: Programar em Java é muito bom! Gosto 
  muito de Java


Note que o método replace() pode atirar uma exceção do tipo NullPointerException se o parâmetro target ou replacement for null.


Java ::: Desafios e Lista de Exercícios Resolvidos ::: Laços de Repetição

Exercícios Resolvidos de Java - Usando o laço while para encontrar o MDC (Máximo Divisor Comum) de dois números

Quantidade de visualizações: 2035 vezes
Pergunta/Tarefa:

Escreva um programa Java que usa o laço while para calcular o MDC (Máximo Divisor Comum) de dois números. Sejam a, b e c números inteiros não nulos, dizemos que c é um divisor comum de a e b se c divide a (escrevemos c|a) e c divide b (c|b). Chamaremos D(a,b) o conjunto de todos os divisores comum de a e b.

Sua saída deve ser parecida com:

Informe o primeiro número: 16
Informe o segundo número: 24
O MDC de 16 e 24 é: 8
Resposta/Solução:

Veja a resolução comentada deste exercício usando Java console:

----------------------------------------------------------------------
Se precisar de ajuda para ajustar o código abaixo de acordo com as
suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar)

Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar
a manter o site livre de anúncios. Ficaremos eternamente gratos ;-)
Nosso PIX é: osmar@arquivodecodigos.com.br 
----------------------------------------------------------------------

package estudos;

import java.util.Scanner;

public class Estudos {
  public static void main(String[] args) {
    Scanner entrada = new Scanner(System.in);
      
    // vamos que o usuário informe dois números
    System.out.print("Informe o primeiro número: ");
    int n1 = Integer.parseInt(entrada.nextLine());
    System.out.print("Informe o segundo número: ");
    int n2 = Integer.parseInt(entrada.nextLine());
    
    int mdc = 1; // partimos do principio de que 1 é o MDC inicial
    int k = 2; // MDC possível
    while((k <= n1) && (k <= n2)){ // enquanto k for menor ou igual aos dois números
       if((n1 % k == 0) && (n2 % k == 0)){
          mdc = k; // já temos um novo MDC
       }
       k++; // buscamos o novo MDC
    }

    // mostramos o resultado
    System.out.println("O MDC de " + n1 + " e " + n2 + " é: " + mdc);
    
    System.out.println("\n");
  }
}



Java ::: Desafios e Lista de Exercícios Resolvidos ::: Arrays e Matrix (Vetores e Matrizes)

Exercícios Resolvidos de Java - Como retornar o primeiro elemento de um array em Java

Quantidade de visualizações: 550 vezes
Pergunta/Tarefa:

Escreva um programa Java que mostra como acessar e retornar o primeiro elemento de um array (vetor) Java.

Sua saída deverá ser parecida com:

Os elementos do vetor são: [9, 5, 3, 2, 4, 8]
O primeiro elemento do array é: 9 
Resposta/Solução:

Veja a resolução comentada deste exercício usando Java:

----------------------------------------------------------------------
Se precisar de ajuda para ajustar o código abaixo de acordo com as
suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar)

Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar
a manter o site livre de anúncios. Ficaremos eternamente gratos ;-)
Nosso PIX é: osmar@arquivodecodigos.com.br 
----------------------------------------------------------------------

package estudos;

import java.util.Arrays;

public class Estudos {
  public static void main(String[] args) {
    // vamos criar um array de inteiros
    int valores[] = {9, 5, 3, 2, 4, 8};
    System.out.println("Os elementos do vetor são: " +
      Arrays.toString(valores));
    
    // agora vamos retornar o primeiro elemento do vetor
    int primeiro = valores[0];
    
    // e mostramos o resultado
    System.out.println("O primeiro elemento do array é: " +
      primeiro);
  }
}



Java ::: Desafios e Lista de Exercícios Resolvidos ::: Operadores de Manipulação de Bits (Bitwise Operators)

Exercícios Resolvidos de Java - Como converter de decimal para binário usando os operadores de bits em Java

Quantidade de visualizações: 927 vezes
Este exercício faz parte da nossa lista de desafios de programação em Java.

Pergunta/Tarefa:

Escreva um programa Java para pede para o usuário informar um número decimal e faça a conversão para binário usando os operadores de bits.

Sua saída deverá ser parecida com:

Informe um número decimal: 9
O número binário é: 00000000000000000000000000001001
Resposta/Solução:

Veja a resolução completa para o exercício em Java, comentada linha a linha:

----------------------------------------------------------------------
Se precisar de ajuda para ajustar o código abaixo de acordo com as
suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar)

Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar
a manter o site livre de anúncios. Ficaremos eternamente gratos ;-)
Nosso PIX é: osmar@arquivodecodigos.com.br 
----------------------------------------------------------------------

package estudos;

import java.util.Scanner;

public class Estudos {
  // vamos definir o tamanho do vetor para guardar
  // os dígitos do número binário
  final static int TAM_INT = Integer.BYTES * 8;
  
  public static void main(String[] args){
    // para ler a entrada do usuário
    Scanner entrada = new Scanner(System.in);
    
    // variáveis para ajudar a resolver o problema
    int decimal, indice, i;
  
    // vetor para guardar o número binário
    int binario[] = new int[TAM_INT];

    // vamos pedir para o usuário informar um decimal inteiro
    System.out.print("Informe um número decimal: ");
    decimal = Integer.parseInt(entrada.nextLine());

    // ajustamos índice para o último elemento do vetor
    indice = TAM_INT - 1;

    // enquanto índice for maior ou igual a 0
    while(indice >= 0){
      // vamos guardar o bit menos significativo LSB
      binario[indice] = decimal & 1;
    
      // diminuímos o índice  100010
      indice--;

      // desloca bits para a direita uma posição
      decimal = decimal >> 1;
    }

    // agora vamos exibir o número binário
    System.out.print("O número binário é: ");
    for(i = 0; i < TAM_INT; i++){
      System.out.print(binario[i]);
    }
    
    System.out.println("\n\n");
  }
}



Java ::: Dicas & Truques ::: Arrays e Matrix (Vetores e Matrizes)

Como testar se uma matriz é uma matriz identidade usando Java

Quantidade de visualizações: 979 vezes
Seja M uma matriz quadrada de ordem n. A matriz M é chamada de Matriz Identidade de ordem n (indicada por In) quando os elementos da diagonal principal são todos iguais a 1 e os elementos restantes são iguais a zero.

Para melhor entendimento, veja a imagem de uma matriz identidade de ordem 3, ou seja, três linhas e três colunas:



Veja um código Java completo no qual nós declaramos uma matriz quadrada de ordem 3, pedimos para o usuário informar os valores de seus elementos e no final informamos se a matriz é uma matriz identidade ou não:

----------------------------------------------------------------------
Se precisar de ajuda para ajustar o código abaixo de acordo com as
suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar)

Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar
a manter o site livre de anúncios. Ficaremos eternamente gratos ;-)
Nosso PIX é: osmar@arquivodecodigos.com.br 
----------------------------------------------------------------------

package estudos;

import java.util.Scanner;

public class Estudos{
  public static void main(String[] args){
    int n = 3; // ordem da matriz quadrada
    int matriz[][] = new int[n][n]; // matriz quadrada

    // para efetuar a leitura do usuário
    Scanner entrada = new Scanner(System.in);
    
    // vamos pedir para o usuário informar os elementos da matriz
    for (int i = 0; i < n; i++){
      for (int j = 0; j < n; j++) {
        System.out.print("Elemento na linha " + (i + 1) +
          " e coluna " + (j + 1) + ": ");
        matriz[i][j] = Integer.parseInt(entrada.nextLine());
      }
    }
    
    // agora verificamos se a matriz é uma matriz identidade
    boolean identidade = true;
    for(int linha = 0; linha < n; linha++){
      for(int coluna = 0; coluna < n; coluna++){
    	if(matriz[linha][coluna] != 1 && matriz[coluna][linha] != 0){
    	  identidade = false;
    	  break;
	}
      }
    }
    
    // agora mostramos a matriz lida
    System.out.printf("\n");
    for (int i = 0; i < n; i++) {
      for (int j = 0; j < n; j++) {
        System.out.printf("%d ", matriz[i][j]);
      }
      System.out.printf("\n");
    }

    if (identidade){
       System.out.printf("\nA matriz informada é uma matriz identidade.\n");
    }
    else{
      System.out.printf("\nA matriz informada não é uma matriz identidade.\n");
    }
  }
}

Ao executar este código Java nós teremos o seguinte resultado:

Elemento na linha 1 e coluna 1: 1
Elemento na linha 1 e coluna 2: 0
Elemento na linha 1 e coluna 3: 0
Elemento na linha 2 e coluna 1: 0
Elemento na linha 2 e coluna 2: 1
Elemento na linha 2 e coluna 3: 0
Elemento na linha 3 e coluna 1: 0
Elemento na linha 3 e coluna 2: 0
Elemento na linha 3 e coluna 3: 1

1 0 0 
0 1 0 
0 0 1 

A matriz informada é uma matriz identidade.



Desafios, Exercícios e Algoritmos Resolvidos de Java

Veja mais Dicas e truques de Java

Dicas e truques de outras linguagens

E-Books em PDF

E-Book 650 Dicas, Truques e Exercícios Resolvidos de Python - PDF com 1.200 páginas
Domine lógica de programação e a linguagem Python com o nosso E-Book 650 Dicas, Truques e Exercícios Exercícios de Python, para você estudar onde e quando quiser.

Este e-book contém dicas, truques e exercícios resolvidos abrangendo os tópicos: Python básico, matemática e estatística, banco de dados, programação dinâmica, strings e caracteres, entrada e saída, estruturas condicionais, vetores e matrizes, funções, laços, recursividade, internet, arquivos e diretórios, programação orientada a objetos e muito mais.
Ver Conteúdo do E-book
E-Book 350 Exercícios Resolvidos de Java - PDF com 500 páginas
Domine lógica de programação e a linguagem Java com o nosso E-Book 350 Exercícios Exercícios de Java, para você estudar onde e quando quiser.

Este e-book contém exercícios resolvidos abrangendo os tópicos: Java básico, matemática e estatística, programação dinâmica, strings e caracteres, entrada e saída, estruturas condicionais, vetores e matrizes, funções, laços, recursividade, internet, arquivos e diretórios, programação orientada a objetos e muito mais.
Ver Conteúdo do E-book

Linguagens Mais Populares

1º lugar: Java
2º lugar: Python
3º lugar: C#
4º lugar: PHP
5º lugar: C
6º lugar: Delphi
7º lugar: JavaScript
8º lugar: C++
9º lugar: VB.NET
10º lugar: Ruby



© 2025 Arquivo de Códigos - Todos os direitos reservados
Neste momento há 26 usuários muito felizes estudando em nosso site.