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

Convertendo uma LinkedList em um array de T

Quantidade de visualizações: 8593 vezes


O título desta dica é meio confuso, visto que à primeira vista, o Java não contém um tipo T. Na verdade, usei o T para definir um tipo genérico, ou seja, mostrarei como converter uma lista ligada LinkedList em um array de qualquer tipo, desde que este novo tipo seja uma interface implementada pelos elementos da lista ligada ou uma superclasse destes.

O primeiro passo é definir e alocar espaço para o novo array:
String array[] = new String[nomes.size()];
Veja que definimos o tamanho do array como sendo o tamanho da LinkedList. Aqui nós definimos o tipo como String porque a lista contém elementos String. Mas poderia ser CharSequence ou Object, uma vez que String herda de Object e implementa CharSequence. Veja como ficaria:
CharSequence array[] = new String[nomes.size()];
O passo seguinte é converter a lista ligada para o array criado anteriormente. Isso é feito da seguinte forma:
array = nomes.toArray(array);
Veja como fornecemos o tipo do array como argumento para o método toArray(). Abaixo você encontrará o código completo para o exemplo. Tenha cuidado. Se tentarmos fornecer um tipo que não seja uma interface implementada pelos elementos da lista ou uma superclasse destes, uma exceção do tipo ArrayStoreException será lançada:
Integer array[] = new Integer[nomes.size()];
array = nomes.toArray(array);
Eis a exceção lançada:
Exception in thread "main" 
  java.lang.ArrayStoreException: java.lang.String
        at java.util.LinkedList.toArray(Unknown 
  Source)
        at Estudos.main(Estudos.java:18)
E abaixo o código completo para o exemplo:
import java.util.*;

public class Estudos{ 
  public static void main(String args[]){ 
    // Cria uma LinkedList de Inteiros
    LinkedList<String> nomes = new 
      LinkedList<String>();
    
    // adiciona elementos no final da lista 
    // ligada
    nomes.add("Osmar");
    nomes.add("Carlos");
    nomes.add("Marcelo");

    // vamos converter esta lista em um
    // array de String
    String array[] = new String[nomes.size()];
    array = nomes.toArray(array);

    // exibe o resultado
    for(int i = 0; i < array.length; i++){
      System.out.println(array[i]);
    }
  } 
}


Link para compartilhar na Internet ou com seus amigos:

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: 11900 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á.


Java ::: Pacote java.awt ::: Graphics

Como desenhar texto na superfície de uma JLabel do Java Swing usando o método drawString() da classe Graphics

Quantidade de visualizações: 11589 vezes
A classe Graphics possui um método chamado drawString() que é usado para desenhar uma string na superfície de um componente. Veja a assinatura deste método:

public abstract void drawString(String str,
  int x,int y)


Como podemos ver, só precisamos fornecer a string a ser desenhada, a coordenada x e a coordenada y. Estas coordenadas são obtidas a partir do canto superior esquerdo do componente no qual desenharemos.

O trecho de código abaixo mostra como desenhar a string "Arquivo de Códigos" em um JLabel:

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

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class Estudos extends JFrame{
  JLabel label;  

  public Estudos() {
    super("Desenhando em um JLabel");
    
    Container c = getContentPane();
    c.setLayout(new BorderLayout());

    // Cria um JLabel
    label = new JLabel();
    c.add(label, BorderLayout.CENTER);

    // Cria um botão
    JButton btn = new 
      JButton("Desenhar uma string");
    btn.addActionListener(
      new ActionListener(){
        public void actionPerformed(ActionEvent e){
          
          // Desenha uma string no JLabel
          Graphics graphics = label.getGraphics();
          graphics.drawString("Arquivo de Códigos", 
            20, 50);     

        }
      }
    );
    
    // Adiciona o botão à janela
    c.add(btn, BorderLayout.SOUTH);

    setSize(350, 250);
    setVisible(true);
  }
  
  public static void main(String args[]){
    Estudos app = new Estudos();
    app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  }
}

Há algo de interessante neste código. Se você maximizar, minimizar ou redimensionar a janela verá que o desenho é apagado. Isso acontece porque todas as vezes que a janela sofre alguma alteração, ela é pintada novamente, juntamente com seus componentes filhos. Se você deseja que o desenho seja feito automaticamente novamente, é melhor fazer uma sub-classe do componente desejado e sobrescrever seu método paintComponent(). Nesta mesma seção você encontrará exemplos de como fazer isso.


Java ::: Desafios e Lista de Exercícios Resolvidos ::: Internet, LAN e E-Mail

Exercícios Resolvidos de Java - Como testar se há um serviço sendo executado em uma porta de um servidor ou máquina local

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

Este exercício resolvido é sobre Internet, Rede e E-Mail usando programação Java.

Escreva um programa Java console ou GUI que peça ao usuário para informar um número de porta na máquina local. Em seguida, tente se conectar a esta porta e informe se há algum serviço sendo executado na porta informada. A entrada e saída do programa pode ser algo como:

Informe o número da porta a ser pesquisada: 3306
Há um serviço na porta informada

Informe o número da posta a ser pesquisada: 2040
Não há nenhum serviço na porta informada
Dica: A forma mais simples de realizar esta tarefa é usando a classe Socket.

Resposta/Solução:

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

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

package estudos;

import java.io.IOException;
import java.net.Socket;
import java.net.UnknownHostException;
import java.util.Scanner;

public class Main {
  public static void main(String[] args){
    Socket socket; // vamos declarar um objeto da classe Socket
    String host = "localhost"; // define o nome da máquina host

    // vamos pedir ao usuário que informe a porta a ser pesquisada
    Scanner entrada = new Scanner(System.in);
    System.out.print("Informe o número da posta a ser pesquisada: ");
    int porta = Integer.parseInt(entrada.nextLine());

    // vamos verificar se há algum serviço na porta informada
    try{
      socket = new Socket(host, porta);
      System.out.println("Há um serviço na porta informada");
    }
    catch (UnknownHostException e) { // não foi possível encontrar a máquina host
       System.out.println("Não foi possível encontrar a máquina host: " + e);
    }
    catch (IOException e) {
      System.out.println("Não há nenhum serviço na porta informada");
    }
  }
}

Veja que, neste exercício, podemos ter o surgimento de duas exceções: UnknownHostException (a máquina informada não pôde ser encontrada) e IOException (houve erro de entrada e/ou saída). Por esta razão, é uma boa idéia envolver o código em um bloco try...catch.


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: 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á 53 usuários muito felizes estudando em nosso site.