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

Como rotacionar os elementos de uma ArrayList do Java para frente ou para trás usando o método rotate()

Quantidade de visualizações: 10953 vezes
Nesta dica mostrarei como podemos usar o método rotate() da classe Collections da linguagem Java para rotacionar os elementos de uma ArrayList. Veja sua assinatura:

void rotate(List<?> list, int distance)


Este método faz com que um elemento na posição i seja movido para a posição (distance + i) % list.size().

Se você quiser inverter a ordem da rotação, forneça um valor negativo para o argumento distance.

Veja o código completo para o exemplo:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

package estudos;

import java.util.ArrayList;
import java.util.Collections;

public class Estudos{
  public static void main(String[] args){
    // cria uma ArrayList que conterá strings
    ArrayList<String> nomes = new ArrayList<String>();
    
    // adiciona itens na lista
    nomes.add("Carlos");
    nomes.add("Maria");
    nomes.add("Fernanda");
    nomes.add("Osmar");    
	
    // exibe os elementos da ArrayList
    System.out.println("Antes da rotação:\n");
    for(int i = 0; i < nomes.size(); i++)
      System.out.println(nomes.get(i));    
 
    // Vamos rotacionar os elementos uma posição
    Collections.rotate(nomes, 1); 

    // exibe os elementos da ArrayList
    System.out.println("\nDepois da rotação:\n");
    for(int i = 0; i < nomes.size(); i++)
      System.out.println(nomes.get(i));

    System.exit(0);
  }
}

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

Antes da rotação:

Carlos
Maria
Fernanda
Osmar

Depois da rotação:

Osmar
Carlos
Maria
Fernanda

Link para compartilhar na Internet ou com seus amigos:

Java ::: Desafios e Lista de Exercícios Resolvidos ::: Estruturas de Dados - Listas Ligadas

Exercícios Resolvidos de Java - Como inserir um nó em qualquer posição de uma lista ligada em Java - Escreva um programa Java que cria uma lista dinamicamente encadeada

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

Escreva um programa Java que cria uma lista dinamicamente encadeada (lista singularmente encadeada) e pede para o usuário inserir 5 elementos do tipo inteiro. Em seguida peça para o usuário informar um índice e um novo elemento e insira tal elemento no índice informado.

Faça a validação dos índices para que ele não saia da faixa permitida.

Sua saída deve ser parecida com:

Inserindo 5 valores na lista

Informe o 1.o valor: 8
Informe o 2.o valor: 2
Informe o 3.o valor: 4
Informe o 4.o valor: 7
Informe o 5.o valor: 3

Valores na lista: 8 -> 2 -> 4 -> 7 -> 3 -> null

Inserindo um elemento no índice k

Informe o índice desejado: 2
Informe o valor do nó: 9

Valores na lista: 8 -> 2 -> 9 -> 4 -> 7 -> 3 -> null
Resposta/Solução:

Na saída podemos ver que o índice 2 corresponde ao terceiro elemento da lista ligada. Por isso o valor 4 foi empurrado para a frente para abrir espaço para o valor 9. Se o índice 0 fosse informado, o número 8 seria empurrado para a frente e o nó com valor 9 passaria a ser o início da lista ligada.

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

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

package estudos;
  
import java.util.Scanner;

// classe interna usada para representar um
// nó na lista ligada
class No {
  int valor; // valor do nó
  No proximo; // aponta para o novo nó
 
  // construtor cheio da classe No
  public No(int valor, No proximo) {
    this.valor = valor;
    this.proximo = proximo;
  }
  
  // construtor vazio da classe No
  public No() {
    this.valor = 0;
    this.proximo = null;
  }
}

public class Estudos { 
  public static void main(String args[]){
    // para ler a entrada do usuário
    Scanner entrada = new Scanner(System.in);
    
    // vamos criar uma referência para o início da lista
    No inicio = null;
    
    // vamos inserir 5 valores inteiros na lista ligada
    int valor;
    System.out.println("Inserindo 5 valores na lista\n");
    for (int i = 0; i < 5; i++) {
      System.out.print("Informe o " + (i + 1) + ".o valor: ");
      valor = Integer.parseInt(entrada.nextLine());
      // vamos inserir este valor no final da lista
      inicio = inserirFinal(inicio, valor);
    }
    
    // vamos exibir os valores na lista ligada
    System.out.print("\nValores na lista: ");
    exibirLista(inicio);
    
    // vamos inserir um novo elemento no índice informado
    System.out.println("\nInserindo um elemento no índice k\n");
    System.out.print("Informe o índice desejado: ");
    int indice = Integer.parseInt(entrada.nextLine());
    
    // o índice é válido?
    if ((indice < 0) || (indice > tamanhoLista(inicio) - 1)) {
      System.out.println("O índice é inválido.");
    }
    else {
      // vamos inserir o novo nó no índice indicado
      System.out.print("Informe o valor do nó: ");
      valor = Integer.parseInt(entrada.nextLine());
      inicio = inserirIndice(inicio, indice, valor);
      
      // vamos exibir os valores na lista ligada
      System.out.print("\nValores na lista: ");
      exibirLista(inicio);
    }
  }
  
  // função que permite adicionar um nó em uma determinada
  // posição da lista ligada
  public static No inserirIndice(No inicio, int indice, int valor) {
    // vamos apontar para o nó inicial
    No atual = inicio;
    // criamos um novo nó
    No novo = criarNo(valor);
    
    // a lista ligada ainda está vazia?
    if (atual == null){
      // inicio recebe o novo nó
      inicio = novo;
    }
    else if (indice == 0) {
      // o índice é igual a 0? vamos inserir
      // o nó no início da lista ligada
      novo.proximo = inicio;
      inicio = novo;
    }
    else {
      // vamos procurar o local adequado para inserção
      // primeiro criamos um nó temporário
      No temp = new No();
      // apontamos o nó temporário para o início da lista
      temp = inicio;
      // e percorremos os nós até encontrar a posição
      // de inserção
      for(int i = 1; i < indice; i++) {
        if (temp != null) {
          // passa para o próximo nó
          temp = temp.proximo;
        }
      }
   
      // concluimos a inserção
      novo.proximo = temp.proximo;
      temp.proximo = novo;
    }
    
    // e retornamos o início da lista
    return inicio;
  }

  // função que permite adicionar um nó no final da
  // lista ligada
  public static No inserirFinal(No inicio, int valor) {
    // vamos apontar para o nó inicial
    No atual = inicio;
    // criamos um novo nó
    No novo = criarNo(valor);
  
    // a lista ligada ainda está vazia?
    if (atual == null){
      // inicio recebe o novo nó
      inicio = novo;
    }    
    else { // temos um ou mais nós na lista ligada
      // vamos localizar o último nó
      while (atual.proximo != null) {
        atual = atual.proximo;
      }
       
      // encontramos o último nó. Agora vamos inserir
      // o novo nó depois dele
      atual.proximo = novo;
    }
     
    // e retornamos o início da lista
    return inicio;
  }
  
  // função usada para construir e retornar um novo nó
  public static No criarNo(int valor) {
    // cria o novo nó
    No no = new No(valor, null);
    // retorna o nó criado
    return no;
  }
  
  // função usada para percorrer a lista ligada e
  // exibir os valores contidos em seus nós
  public static void exibirLista(No inicio) {
    // vamos apontar para o início da lista
    No temp = inicio;
    
    // a lista está vazia?
    if (temp == null) {
      System.out.println("A lista está vazia.");
    }
    else {
      // esse laço se repete enquanto tempo for
      // diferente de null
      while (temp != null) {
        // vamos mostrar o valor desse nó
        System.out.print(temp.valor + " -> ");
        // avança para o próximo nó
        temp = temp.proximo;
      }
    
      // mostra o final da lista
      System.out.println("null");
    }
  }
  
  // função que retorna a quantidade de nós na lista ligada
  public static int tamanhoLista(No inicio) {
    int tamanho = 0;
    
    // vamos apontar para o início da lista
    No temp = inicio;
    
    // a lista está vazia?
    if (temp == null) {
      return 0;
    }
    else {
      // esse laço se repete enquanto tempo for
      // diferente de null
      while (temp != null) {
        // vamos incrementar o tamanho
        tamanho++;
        // avança para o próximo nó
        temp = temp.proximo;
      }
    }
    
    return tamanho;
  }
}



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

Java para iniciantes - Como usar o método replace() da classe String para efetuar a substituição de caracteres em uma string

Quantidade de visualizações: 9462 vezes
Em algumas situações gostaríamos de substituir caracteres (não substrings) em uma string. Isso pode ser feito por meio do método replace() da classe String. Veja sua assinatura:

public String replace(char oldChar, char newChar)
O parâmetro oldChar representa o caractere que será substituído pelo valor no parâmetro newChar. Note que todas as ocorrências de oldChar serão substituídas por newChar. O resultado será um novo objeto String com as substituições aplicadas. Se não houver substituições a string atual é retornada.

Veja um trecho de código no qual substituímos todas as letras "a" por "e" e retornamos uma nova string com as substituições:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

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

Após a execução deste código teremos o seguinte resultado:

Frase original: Programar em Java é muito bom
Depois da substituição: Progremer em Jeve é muito bom



Java ::: Dicas & Truques ::: Formatação de datas, strings e números

Java para iniciantes - Como formatar uma string no estilo printf da linguagem C usando a classe Formater do Java

Quantidade de visualizações: 11860 vezes
Nesta dica eu mostro como é possível usar o método format() da classe Formater da linguagem Java para formatar strings ao bom e velho estilo da linguagem C, ou seja, com marcadores %d para inteiros, %f para decimais, por exemplo.

Veja o exemplo completo:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

package arquivodecodigos;

import java.util.*;
 
public class Estudos{
  public static void main(String[] args){
 
    int pessoas = 20;    
 
    StringBuilder string = new StringBuilder();
    Formatter fm = new Formatter(string);
 
    fm.format("Havia %d pessoas lá.", pessoas);
 
    System.out.println(string);    
  }
}

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

Havia 20 pessoas lá.


Vamos testar seus conhecimentos em Python

Qual das formas abaixo é usada para criar um SET em Python?

A) valores = set{3, 6, 1, 7, 6, 3}

B) valores = (3, 6, 1, 7, 6, 3)

C) valores = [3, 6, 1, 7, 6, 3]

D) valores = {3, 6, 1, 7, 6, 3}

E) valores = set(3, 6, 1, 7, 6, 3)
Verificar Resposta Estudar Cards Todas as Questões

Vamos testar seus conhecimentos em

Vantagens e Desvantagens do Concreto Armado

O concreto simples é formado pela mistura entre cimento, agregados (miúdos e graúdos) e água. A junção de barras de aço na forma de armaduras com esse material resulta no concreto armado.

Com relação às vantagens da utilização do concreto armado, analise as afirmações a seguir:

I. Os processos de construção de estruturas de concreto armado são conhecidos, e a sua execução não exige mão de obra com elevado nível de qualificação.

II. A grande massa e a rigidez dos elementos de concreto armado minimizam os efeitos de vibrações e oscilações decorrentes do vento e de utilização.

III. Pelo fato de as estruturas de concreto serem monolíticas, elas apresentam facilidade em serem moldadas.

Qual(is) está(ão) correta(s)?

A) Apenas I.

B) Apenas II.

C) Apenas III.

D) I e II.

E) II e III.
Verificar Resposta Estudar Cards Todas as Questões

Vamos testar seus conhecimentos em Engenharia Civil - Instalações Hidráulicas Prediais

Água Fria: Reservatórios

Uma edificação possui 10 ocupantes com um consumo médio per capita de 200 litros por dia. Qual a capacidade total mínima do reservatório, segundo a NBR 5.626, sem considerar a reserva de incêndio?

A) 6 m3.

B) 1,6 m3.

C) 2 m3.

D) 8 m3.

E) 500 litros.
Verificar Resposta Estudar Cards Todas as Questões

Vamos testar seus conhecimentos em Python

Qual instrução é usada para interromper um laço em Python?

A) return

B) catch

C) break

D) continue

E) exit
Verificar Resposta Estudar Cards Todas as Questões

Vamos testar seus conhecimentos em Engenharia Civil - Estruturas de Aço e Madeira

O aço no edifício

A estrutura de estabilização da moldura estrutural da edificação da figura a seguir, que é formada por paredes rígidas, feitas de aço, concreto ou alvenaria de concreto armado, pode ser chamada de:



A) Estrutura contraventada.

B) Moldura amarrada excentricamente.

C) Moldura resistente a momentos.

D) Paredes de cisalhamento.

E) Nenhuma das alternativas anteriores.
Verificar Resposta Estudar Cards Todas as Questões

Desafios, Exercícios e Algoritmos Resolvidos de Java

Veja mais Dicas e truques de Java

Dicas e truques de outras linguagens

Códigos Fonte

Programa de Gestão Financeira Controle de Contas a Pagar e a Receber com Cadastro de Clientes e FornecedoresSoftware de Gestão Financeira com código fonte em PHP, MySQL, Bootstrap, jQuery - Inclui cadastro de clientes, fornecedores e ticket de atendimento
Diga adeus às planilhas do Excel e tenha 100% de controle sobre suas contas a pagar e a receber, gestão de receitas e despesas, cadastro de clientes e fornecedores com fotos e histórico de atendimentos. Código fonte completo e funcional, com instruções para instalação e configuração do banco de dados MySQL. Fácil de modificar e adicionar novas funcionalidades. Clique aqui e saiba mais
Controle de Estoque completo com código fonte em PHP, MySQL, Bootstrap, jQuery - 100% funcional e fácil de modificar e implementar novas funcionalidadesControle de Estoque completo com código fonte em PHP, MySQL, Bootstrap, jQuery - 100% funcional e fácil de modificar e implementar novas funcionalidades
Tenha o seu próprio sistema de controle de estoque web. com cadastro de produtos, categorias, fornecedores, entradas e saídas de produtos, com relatórios por data, margem de lucro e muito mais. Código simples e fácil de modificar. Acompanha instruções para instalação e criação do banco de dados MySQL. Clique aqui e saiba mais

Linguagens Mais Populares

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



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