Você está aqui: Java ::: Pacote java.util ::: Comparator |
Entenda e aprenda a usar objetos da interface Comparator em suas aplicações JavaQuantidade de visualizações: 2449 vezes |
Um objeto da interface Comparator<T>, do pacote java.util, é útil quando precisamos de uma função de comparação para facilitar a ordenação dos objetos de uma coleção. Um Comparator pode ser passado para um método sort (tais como Collections.sort ou Arrays.sort) para permitir um controle preciso sobre a ordem da classificação. Objetos desta interface também podem ser usados para controlar a ordem de certas estruturas de dados (tais como conjuntos ou mapas ordenados - sorted sets ou sorted maps) ou para fornecer uma ordenação para coleções de objetos que não apresentam uma ordem natural. Para vermos um exemplo da utilidade de um Comparator, comece analisando o trecho de código abaixo: ---------------------------------------------------------------------- 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; import java.util.Comparator; // classe que será usada para demonstração do uso de um Comparator class Pessoa{ String nome; int idade; // construtor public Pessoa(String nome, int idade){ this.nome = nome; this.idade = idade; } } public class Estudos{ public static void main(String[] args) { // vamos criar uma ArrayList de objetos da classe Pessoa ArrayList<Pessoa> pessoas = new ArrayList(); pessoas.add(new Pessoa("Carlos", 30)); pessoas.add(new Pessoa("Marcos", 11)); pessoas.add(new Pessoa("Cintia", 35)); pessoas.add(new Pessoa("Fernanda", 10)); pessoas.add(new Pessoa("Igor", 91)); // vamos ordenar os elementos do ArrayList usando o método sort() da classe Collectons // o critério de ordenação é por idade ascendente Collections.sort(pessoas, new Comparator<Pessoa>(){ @Override public int compare(Pessoa p1, Pessoa p2){ return p1.idade - p2.idade; } }); // vamos percorrer e exibir os valores dos elementos for(Pessoa p : pessoas){ System.out.println("Nome: " + p.nome + "; Idade: " + p.idade); } } } 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) ---------------------------------------------------------------------- Nome: Fernanda; Idade: 10 Nome: Marcos; Idade: 11 Nome: Carlos; Idade: 30 Nome: Cintia; Idade: 35 Nome: Igor; Idade: 91 Neste exemplo podemos ver que cinco objetos da classe Pessoa foram adicionados no ArrayList. Note que suas idades não estão ordenadas. Porém, após a chamada ao método sort() da classe Collections e fornecendo um objeto Comparator com o critério de ordenação, os elementos do ArrayList são ordenados por idade ascendente (da menor para a maior). As classes conhecidas e que implementam a interface Comparator são Collator e RuleBasedCollator. |
Link para compartilhar na Internet ou com seus amigos: |
Java ::: Pacote java.lang ::: Character |
Como usar a classe Character da linguagem Java para tratar caracteres individuais em seus programasQuantidade de visualizações: 7151 vezes |
A classe Character, uma classe pública e final (ou seja, não é possível fazer subclasse desta classe) e presente no pacote java.lang é uma classe encapsuladora (wrapper class) para o tipo primitivo char. Objetos desta classe contém apenas um campo, cujo tipo é char. Veja a posição desta classe na hierarquia de classes da plataforma Java: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- java.lang.Object java.lang.Character Esta classe implementa as interfaces Serializable e Comparable<Character>. Uma das vantagens de se usar objetos da classe Character é que podemos chamar seus métodos estáticos para obter informações sobre o tipo char encapsulado. Veja: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- public class Main { public static void main(String[] args) { // uma variável do tipo char char letra = 'A'; // vamos verificar se o caractere anterior é uma letra maiúscula if(Character.isUpperCase(letra)){ System.out.println("A letra é maiúscula"); } else{ System.out.println("A letra não é maiúscula"); } } } Ao executarmos este código teremos o seguinte resultado: A letra é maiúscula Veja que neste trecho de código nós usamos o método estático isUpperCase() da classe Character para verificar se um determinado caractere está em letras maiúsculas. |
Java ::: Classes e Componentes ::: JTable |
Java Swing - Como obter a quantidade de colunas em uma JTable usando o método getColumnCount()Quantidade de visualizações: 8544 vezes |
Nesta dica mostrarei como é possível contar as colunas de uma JTable com uma chamada ao método getColumnCount() da interface TableModel, que representa os dados contidos na tabela. Note que, neste exemplo, eu escrevi toda a aplicação Java Swing "na unha", ou seja, sem nenhum editor visual. Esta técnica é boa para entender todas as partes que compoem uma aplicação Java Swing. Veja o código completo: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- package arquivodecodigos; import javax.swing.*; import java.awt.*; import java.awt.event.*; public class Estudos extends JFrame{ public Estudos(){ super("Exemplo de uma tabela simples"); // colunas da tabela String[] colunas = {"Cidade", "Estado", "Habitantes"}; // conteúdo da tabela Object[][] conteudo = { {"Goiânia", "GO", "43.023.432"}, {"São Paulo", "SP", "5.343.234"}, {"Rio de Janeiro", "RJ", "6.434.212"}, {"Jussara", "GO", "87.454"}, {"Barra do Garças", "MT", "64.344"} }; // constrói a tabela final JTable tabela = new JTable(conteudo, colunas); tabela.setPreferredScrollableViewportSize( new Dimension(350, 50)); Container c = getContentPane(); c.setLayout(new FlowLayout()); JButton btn = new JButton("Número de Colunas"); btn.addActionListener( new ActionListener(){ public void actionPerformed(ActionEvent e){ JOptionPane.showMessageDialog(null, "Quantidade de colunas: " + tabela.getModel().getColumnCount(), "JTable", JOptionPane.INFORMATION_MESSAGE); } } ); JScrollPane scrollPane = new JScrollPane(tabela); c.add(scrollPane); c.add(btn); setSize(400, 300); setVisible(true); } public static void main(String args[]){ Estudos app = new Estudos(); app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } } Ao executar este exemplo e clicar no botão nós veremos uma mensagem JOptionPane.showMessageDialog() com o seguinte texto: Quantidade de colunas: 3 |
Java ::: Dicas & Truques ::: Data e Hora |
Como retornar o dia do mês em Java usando Calendar.DAY_OF_MONTHQuantidade de visualizações: 60 vezes |
Nesta dica mostrarei como podemos usar a constante Calendar.DAY_OF_MONTH para retornar o dia do mês para uma determinada data. Para isso nós só precisamos fornecer esta constante para o método get() de uma instância da classe Calendar. 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.Calendar; public class Estudos { public static void main(String args[]) { // vamos obter uma instância da classe Calendar Calendar agora = Calendar.getInstance(); // agora vamos obter o dia do mês como um inteiro int dia_mes = agora.get(Calendar.DAY_OF_MONTH); // e mostramos o resultado System.out.println("O dia do mês é: " + dia_mes); } } Ao executar este código Java nós teremos o seguinte resultado: O dia do mês é: 26 |
Desafios, Exercícios e Algoritmos Resolvidos de Java |
Veja mais Dicas e truques de Java |
Dicas e truques de outras linguagens |
Códigos Fonte |
Software 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 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 |