Você está aqui: Java ::: Pacote java.util ::: Iterator

Como usar o método hasNext() da interface Iterator do Java para testar se o iterador possui mais elementos a serem percorridos

Quantidade de visualizações: 4426 vezes
Quando estamos usando um objeto da interface Iterator para enumerar e percorrer os elementos de uma coleção (ArrayList, Vector, etc), é sempre uma boa idéia verificar se o iterador possui elementos (ou mais elementos) antes de tentar acessá-los. Isso pode ser feito por meio do método hasNext(). Se a enumeração possuir mais elementos o valor true é retornado. Em caso contrário false será retornado.

Veja um trecho de código no qual obtemos um Iterator para os elementos de um ArrayList e usamos seu método hasNext() para testar se ainda há elementos a serem percorridos:

----------------------------------------------------------------------
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.Iterator;

public class Estudos{
  public static void main(String[] args) {
    // vamos criar uma ArrayList
    ArrayList<String> pessoas = new ArrayList();
    pessoas.add("Osmar");
    pessoas.add("Carlos");
    pessoas.add("Fernanda");
    
    // vamos obter um iterador para a lista
    Iterator<String> pessoa = pessoas.iterator();
    
    // agora vamos percorrer os elementos
    while(pessoa.hasNext()){ // há elementos a serem percorridos?
      System.out.println(pessoa.next()); 
    }
  }
}

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

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

Osmar
Carlos
Fernanda


Link para compartilhar na Internet ou com seus amigos:

Java ::: Dicas & Truques ::: Threads

Java Threads - Como interromper a execução de uma thread em suas aplicações Java

Quantidade de visualizações: 15297 vezes
A classe Thread fornece um método chamado interrupt() que serve para interrompermos a execução de uma determinada thread. Os métodos sleep() e yield() transferem a thread sendo executada no momento do estado "executando" para o estado "pronta". O método interrupt(), por sua vez, faz com que uma thread vá para o estado "finalizada", ou seja, ela não voltará mais a ser executada.

O problema é que, nem sempre, o método interrupt() parece surtir o efeito desejado, ou seja, fazer com que a thread pare de executar imediatamente. Por esta razão, a forma mais fácil de "matar" uma thread é forçar a saída de seu método run(). Veja um exemplo:

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

// criamos uma classe que servirá como thread
class MinhaThread extends Thread{
  private String nome;  

  public MinhaThread(String nome){
    this.nome = nome;
  }   

  public void run(){
    for(int i = 1; i <= 20; i++){
      System.out.println(nome + ": " + i);

      if((i >= 3) && (nome.equals("Thread 1"))){
        try{
          System.out.println(nome + " foi eliminada");
          return; // interrompe a execução do método run()
        }
        catch(SecurityException e){
          System.out.println(e.getMessage());
        }      
      }
    }
  }
}

public class Estudos{
  public static void main(String[] args){
    // vamos criar duas threads
    MinhaThread t1 = new MinhaThread("Thread 1");
    t1.start();    

    MinhaThread t2 = new MinhaThread("Thread 2");
    t2.start();
  }
}

Ao usar a instrução return nós forçamos a saída do método run() e consequentemente, o fim da tarefa sendo realizada pela thread.


Java ::: Dicas & Truques ::: Imagens e Processamento de Imagens

Como converter uma imagem colorida para tons de cinza em Java usando o filtro GrayFilter - Processamento de imagens em Java

Quantidade de visualizações: 11324 vezes
O exemplo abaixo mostra como usar a classe GrayFilter para converter uma imagem JPG colorida em uma imagem com tons de cinza. Veja que o segundo argumento no construtor da classe GrayFilter que usamos permite definir o nível de cinza (em porcentagem) que será aplicado:

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

import java.awt.*;
import java.io.*;
import java.awt.image.*;
import java.awt.event.*;
import javax.swing.*;
import javax.imageio.*;

public class Estudos extends JFrame{
  private BufferedImage imagem;
  private BufferedImage imagemCinza;
  AreaImagem areaImagem;  

  public Estudos(){
    super("Estudos Java");
    
    Container c = getContentPane();
    c.setLayout(new BorderLayout());
	
    JButton btn = new JButton("Carregar Imagem");
    btn.addActionListener(
      new ActionListener(){
        public void actionPerformed(ActionEvent e){
          JFileChooser fc = new JFileChooser();

          int res = fc.showOpenDialog(null);
          if(res == JFileChooser.APPROVE_OPTION){
	    File arquivo = fc.getSelectedFile();  
          
            imagem = null;
          
            try{
              imagem = ImageIO.read(arquivo);
            }
            catch(IOException exc){
              JOptionPane.showMessageDialog(null, 
                "Erro ao carregar a imagem: " + 
                exc.getMessage());
            }

            if(imagem != null){
              areaImagem.imagem = imagem;
              areaImagem.repaint();  
            }
          }
        }
      }
    );

    JButton btn2 = 
      new JButton("Converter Escala Cinza");
    btn2.addActionListener(
      new ActionListener(){
        public void actionPerformed(ActionEvent e){
          converterEscalaCinza();
        }
      }
    );

    JPanel painel = new JPanel();
    painel.setLayout(new FlowLayout());    
    painel.add(btn);
    painel.add(btn2);

    c.add(painel, BorderLayout.SOUTH);
    
    // Cria a área de exibição da imagem
    areaImagem = new AreaImagem();
    c.add(areaImagem, BorderLayout.CENTER);    
	
    setSize(400, 300);
    setVisible(true);
  }

  public void converterEscalaCinza(){
    ImageFilter filter = new GrayFilter(true, 30);
    ImageProducer producer = new FilteredImageSource(
      imagem.getSource(), filter);
    Image imagemTemp = this.createImage(producer);

    // precisamos converter Image para BufferedImage
    imagemCinza = new BufferedImage(imagem.getWidth(),
      imagem.getHeight(), BufferedImage.TYPE_INT_RGB);
    Graphics g = imagemCinza.getGraphics();
    g.drawImage(imagemTemp, 0, 0, null);
    g.dispose();

    areaImagem.imagem = imagemCinza;
    areaImagem.repaint();
  }
  
  public static void main(String args[]){
    Estudos app = new Estudos();
    app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  }
}

// Sub-classe de JPanel para exibir a imagem
class AreaImagem extends JPanel{
  public BufferedImage imagem;

  public void paintComponent(Graphics g){ 
    super.paintComponent(g);
    
    // desenha a imagem no JPanel
    g.drawImage(imagem, 0, 0, this);
  } 
}



Java ::: Desafios e Lista de Exercícios Resolvidos ::: Métodos, Procedimentos e Funções

Exercício Resolvido de Java - Escreva um método chamado inverter() que recebe um número inteiro e retorna este mesmo número invertido

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

Escreva um método Java chamado inverter() que recebe um número inteiro e retorna este mesmo número invertido. Este método deverá ter a seguinte assinatura:

public static int inverter(int numero){
  // sua implementação aqui
}
Este método deverá, obrigatoriamente, estar na classe principal (aquela que contém o método main()). Após a implementação do método inverter(), vá até o método main() e peça ao usuário para informar um número inteiro qualquer. Em seguida faça uma chamada ao método inverter() passando o valor informado como argumento, obtenha o retorno e exiba-o.

ATENÇÃO: Para a resolução deste exercício é permitido usar apenas os operadores aritméticos.

Sua saída deverá ser parecida com:

Informe um número inteiro: 487
O valor invertido é: 784
Resposta/Solução:

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;
 
public class Estudos{
  public static void main(String[] args) {
    // vamos fazer a leitura usando a classe Scanner
    Scanner entrada = new Scanner(System.in);
     
    // vamos pedir ao usuário que informe um número inteiro
    System.out.print("Informe um número inteiro: ");
    int numero = Integer.parseInt(entrada.nextLine());
     
    // fazer efetuar uma chamada ao método inverter() e obter o valor invertido
    int invertido = inverter(numero);
     
    // e exibir o resultado
    System.out.println("O valor invertido é: " + invertido);
  }
   
  // método estático que recebe um número inteiro e o devolve invertido
  public static int inverter(int numero){
    int resultado = 0; // guarda o resultado da inversão
     
    // enquanto número for diferente de 0
    while(numero != 0){
      // obtém resto da divisão de número por 10
      int resto = numero % 10;
 
      // resultado recebe ele mesmo multiplicado por 10 mais o resto
      resultado = resultado * 10 + resto;
 
      // finalmente número recebe ele mesmo dividido por 10
      numero = numero / 10;
    }
 
    return resultado; // retorna o resultado
  }
}



Vamos testar seus conhecimentos em Engenharia Civil - Construção Civil

Formas: Confecção e colocação

Em relação aos materiais utilizados para formas, assinale a alternativa correta.

A) A fibra de vidro é muito utilizada para pilares e vigas.

B) Formas em poliestireno expandido são altamente reaproveitadas.

C) Vidro é muito utilizado para concreto aparente.

D) Tubos de papelão são muito usados em pilares de seção circular e em estruturas com caixão perdido.

E) As tábuas são os materiais que proporcionam o maior reaproveitamento.
Verificar Resposta Estudar Cards Todas as Questões

Vamos testar seus conhecimentos em Ética e Legislação Profissional

Noções de licitação pública

O procedimento licitatório compreende duas fases: a fase interna, ocorrida dentro do órgão ou da entidade, e a fase externa.

Sobre as fases da licitação pública, assinale "V" para as afirmativas verdadeiras e "F" para as falsas.

( ) Cabem à comissão de licitação a homologação e a adjudicação do certame.

( ) A fase de habilitação poderá ser invertida a critério da administração e mediante apresentação de justificativa da referida inversão.

( ) A publicação do instrumento convocatório é a última etapa da fase interna da licitação.

A alternativa que apresente a sequência correta é:

A) V, V, V.

B) F, F, F.

C) V, V, F.

D) F, V, V.

E) F, V, F.
Verificar Resposta Estudar Cards Todas as Questões

Vamos testar seus conhecimentos em Hidrologia

A transpiração é um processo fundamental na contribuição para o acúmulo de água em estado gasoso na atmosfera. Qual agente é um dos principais atores nesse processo?

A) Rochas.

B) Solos férteis.

C) Chuvas.

D) Seres vivos.

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

Vamos testar seus conhecimentos em Ética e Legislação Profissional

Ética profissional, social, política

Várias profissões, principalmente aquelas que implicam os direitos humanos à vida, à justiça, à igualdade, seguem códigos de ética que são frutos precisamente da ética deontológica normativa: "um código de ética não poderá cobrir todas as situações que se levantam à medida que uma disciplina expande e tenta encontrar as necessidades em mudança de um tipo de serviço entre as pessoas na sociedade" (BLACKWELL et al. apud DIAS, 2008, p. 54).

De acordo com o trecho citado, assinale a alternativa correta:

A) A deontologia presume um código de ética universal para todas as profissões.

B) A deontologia abre espaços para que o profissional possa agir arbitrariamente.

C) A deontologia recusa mudanças em seus códigos de ética.

D) A deontologia serve como um guia reflexivo que orienta mesmo em situações inusitadas.

E) A deontologia responsabiliza o profissional pelas consequências de todo agir.
Verificar Resposta Estudar Cards Todas as Questões

Vamos testar seus conhecimentos em Fenômeno de Transportes e Hidráulica

Peso específico relativo

O peso específico relativo para líquidos é relacionado com o peso específico da água em condições padrão de temperatura e pressão. Sabendo que o peso específico relativo de uma substância é de 0,8, determine o seu peso específico.

A) 0,8N/m3.

B) 8N/m3.

C) 8000N/m3.

D) 0,8kg/m3.

E) 0,8m3/kg.
Verificar Resposta Estudar Cards Todas as Questões

Mais Desafios de Programação e 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á 46 usuários muito felizes estudando em nosso site.