Você está aqui: Java ::: Coleções (Collections) ::: PriorityQueue |
Como usar a classe PriorityQueue para criar uma fila de prioridades em suas aplicações JavaQuantidade de visualizações: 926 vezes |
A classe PriorityQueue, do pacote java.util, é utilizada quando precisamos criar uma fila de prioridade. Como sabemos, uma filha é uma estrutura do tipo FIFO (First-in, First-out), na qual o primeiro elemento a entrar na fila é o primeiro a sair. Uma filha de prioridade permite a remoção dos itens da fila de acordo com uma prioridade pré-determinada. Antes de progredirmos, veja a posição da classe PriorityQueue na hierarquia de classes da plataforma Java: java.lang.Object java.util.AbstractCollection<E> java.util.AbstractQueue<E> java.util.PriorityQueue<E> As interfaces implementadas pela classe PriorityQueue são: Serializable, Iterable<E>, Collection<E> e Queue<E>. Vamos ver agora como podemos usar a classe PriorityQueue para criar uma fila de prioridade de números inteiros e entender melhor o seu funcionamento: ---------------------------------------------------------------------- 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.PriorityQueue; import java.util.Queue; public class Estudos{ public static void main(String[] args){ // vamos criar a fila e adicionar 5 valores inteiros Queue<Integer> fila = new PriorityQueue<>(); fila.add(7); fila.add(5); fila.add(11); fila.add(2); fila.add(1); // vamos remover os elementos da fila System.out.println("Ordem de remoção dos elementos da fila de prioridade:"); while(!fila.isEmpty()){ System.out.print(fila.poll() + " "); } } } Ao executar este código Java nós teremos o seguinte resultado: Ordem de remoção dos elementos da fila de prioridade: 1 2 5 7 11 Note que os elementos da fila foram removidos obedecendo ao critério da ordem natural, ou seja, do menor para o maior. Veja ainda que usamos o método add() para enfileirar um novo elemento na fila de prioriedades e o método poll() para remover o elemento na frente da fila. Em outras dicas desta seção nós exploramos os demais métodos e as técnicas para personalizar o critério de prioridade. |
![]() |
Java ::: Desafios e Lista de Exercícios Resolvidos ::: Java Básico |
Exercício Resolvido de Java - Um programa Java que lê dois números e mostra a soma, subtração, multiplicação e a divisão dos números lidosQuantidade de visualizações: 1594 vezes |
Pergunta/Tarefa: Faça um programa em Java que receba dois números e no final mostre a soma, subtração, multiplicação e a divisão dos números lidos. Os números deverão ser informados pelo usuário. Sua saída deverá ser parecida com: Informe o primeiro número: 9 Informe o segundo numero: 4 A soma é: 13 A subtração é: 5 A multiplicação é: 36 A divisão é: 2.25 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 { public static void main(String[] args) { // vamos usar a classe Scanner para efetuar a leitura Scanner entrada = new Scanner(System.in); // vamos ler o primeiro número System.out.print("Informe o primeiro número: "); int n1 = Integer.parseInt(entrada.nextLine()); // vamos ler o segundo número System.out.print("Informe o segundo numero: "); int n2 = Integer.parseInt(entrada.nextLine()); // primeiro vamos somar os dois números int soma = n1 + n2; System.out.println("A soma é: " + soma); // agora vamos subtrair int subtracao = n1 - n2; System.out.println("A subtração é: " + subtracao); // agora a multiplicação int multiplicacao = n1 * n2; System.out.println("A multiplicação é: " + multiplicacao); // e finalmente a divisão. Note o truque para não arredondar // a divisão double divisao = (n1 * 1.0) / n2; System.out.println("A divisão é: " + divisao); } } |
Java ::: Desafios e Lista de Exercícios Resolvidos ::: Java Básico |
Exercícios Resolvidos de Java - Como calcular a soma, o produto, a diferença e o quociente de dois números inteiros informados pelo usuárioQuantidade de visualizações: 1391 vezes |
Pergunta/Tarefa: Escreva um programa Java que pede para o usuário informar dois número inteiros. Em seguida mostre a soma, o produto, a diferença e o quociente dois dois números informados. Sua saída deverá ser parecida com: Informe o primeiro número: 8 Informe o segundo número: 3 A soma dos números é: 11 O produto dos números é: 24 A diferença dos números é: 5 O quociente dos números é: 2.66667 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.Scanner; public class Estudos{ public static void main(String args[]){ // variáveis usadas na resolução do problema int n1, n2, soma, produto, diferenca; double quociente; // vamos ler os dois números Scanner leitura = new Scanner(System.in); System.out.print("Informe o primeiro número: "); n1 = Integer.parseInt(leitura.nextLine()); System.out.print("Informe o segundo número: "); n2 = Integer.parseInt(leitura.nextLine()); // vamos somar os dois números soma = n1 + n2; // vamos calcular o produto produto = n1 * n2; // vamos calcular a diferença diferenca = n1 - n2; // vamos calcular o quociente quociente = n1 / (n2 * 1.0); // vamos mostrar os resultados System.out.println("A soma dos números é: " + soma); System.out.println("O produto dos números é: " + produto); System.out.println("A diferenca dos números é: " + diferenca); System.out.println("O quociente dos números é: " + quociente); } } |
Java ::: Dicas & Truques ::: Arrays e Matrix (Vetores e Matrizes) |
Como retornar o tamanho de um array em Java usando a propriedade length do objeto ArrayQuantidade de visualizações: 11171 vezes |
Nesta dica mostrarei como usar a propriedade length de um vetor (array de uma linha e várias colunas) para retornar a quantidade de elementos que ele possui. Este retorno é um número inteiro. Veja o código completo: ---------------------------------------------------------------------- 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; public class Estudos{ public static void main(String[] args){ // cria um vetor de cinco elementos String[] pessoas = {"Fábio", "Fernanda", "Francisco", "João", "Osmar"}; // obtém o tamanho do vetor int quant = pessoas.length; System.out.println("Este array possui " + quant + " elementos"); System.exit(0); } } Ao executarmos este código nós teremos o seguinte resultado: Este array possui 5 elementos Este código foi revisado e testado no Java 8. |
Java ::: Pacote java.awt.event ::: KeyEvent |
Java Swing - Como detectar as teclas Insert ou Delete usando o método getKeyCode() da classe KeyEvent do JavaQuantidade de visualizações: 3201 vezes |
Em algumas situações nós precisamos detectar o pressionamento das teclas Insert ou Delete. Para isso podemos usar o método getKeyCode() da classe KeyEvent e testar se o código equivale a uma das constantes KeyEvent.VK_INSERT (Ins) ou KeyEvent.VK_DELETE (Del). Veja um trecho de código no qual testamos se alguma destas duas teclas foi pressionada: ---------------------------------------------------------------------- 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.awt.Container; import java.awt.FlowLayout; import java.awt.event.KeyEvent; import java.awt.event.KeyListener; import javax.swing.JFrame; import javax.swing.JOptionPane; public class Janela extends JFrame implements KeyListener{ public Janela(){ super("Eventos do Teclado"); Container c = getContentPane(); FlowLayout layout = new FlowLayout(FlowLayout.LEFT); c.setLayout(layout); // vamos adicionar o objeto listener addKeyListener(this); setSize(350, 250); setVisible(true); } @Override public void keyPressed(KeyEvent e){ // a tecla Insert foi pressionada? if(e.getKeyCode() == KeyEvent.VK_INSERT){ JOptionPane.showMessageDialog(null, "A tecla Insert foi pressionada"); } // a tecla Enter Delete pressionada? else if(e.getKeyCode() == KeyEvent.VK_DELETE){ JOptionPane.showMessageDialog(null, "A tecla Delete foi pressionada"); } else{ JOptionPane.showMessageDialog(null, "Outra tecla foi pressionada"); } } @Override public void keyReleased(KeyEvent e){ // sem implementação } @Override public void keyTyped(KeyEvent e){ // sem implementação } public static void main(String args[]){ Janela j = new Janela(); j.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } } É importante observar que as teclas Insert e Delete podem ser detectadas somente nos eventos keyPressed e keyReleased. |
Java ::: Dicas & Truques ::: Arquivos e Diretórios |
Como renomear um diretório em Java usando o método renameTo() da classe File - Arquivos e diretórios em JavaQuantidade de visualizações: 2 vezes |
Nesta dica mostrarei como podemos usar o método renameTo() da classe File da linguagem Java para renomear um diretório. Veja que este método retorna boolean, ou seja, o valor true caso o diretório for renomeado com sucesso e false em caso contrário. Veja o código completo para o exemplo: ---------------------------------------------------------------------- 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; import java.io.*; public class Estudos{ public static void main(String[] args){ // diretorio com o nome antigo File dir1 = new File("c:\\java"); // diretorio com o novo nome File dir2 = new File("c:\\java_novo"); boolean ok = dir1.renameTo(dir2); if(ok){ System.out.println("Diretorio renomeado com sucesso."); } else{ System.out.println("Nao foi possivel renomear o diretorio."); } } } Ao executar este código Java nós teremos o seguinte resultado: Diretorio renomeado com sucesso. |
Java ::: Pacote java.lang ::: Character |
Como usar o método isDigit() da classe Character da linguagem Java para verificar se um caractere é um dígito de 0 a 9Quantidade de visualizações: 9384 vezes |
Em algumas situações, principalmente quando estamos validando dados informados pelo usuário, pode ser necessário verificar se um determinado caractere é um dígito de 0 a 9. Isso pode ser feito por meio do método isDigit() da classe Character. Este método estático recebe um caractere como argumento e retorna true se o caractere for um dígito e false em caso contrário. Veja um exemplo no qual lemos um caractere informado pelo usuário e informamos se o mesmo é um dígito 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 ---------------------------------------------------------------------- import javax.swing.JOptionPane; public class Main { public static void main(String[] args) { // vamos pedir ao usuário para informar um caractere qualquer char caractere = JOptionPane.showInputDialog("Informe um caractere:").charAt(0); // vamos testar se o caractere informado é um dígito if(Character.isDigit(caractere)){ JOptionPane.showMessageDialog(null, "O caractere informado é um dígito"); } else{ JOptionPane.showMessageDialog(null, "O caractere informado não é um dígito"); } } } Uma outra forma de verificar se um determinado caractere é um dígito é testar se o retorno de uma chamada ao método estático getType() da classe Character é a constante DECIMAL_DIGIT_NUMBER, também definida na classe Character. Veja uma modificação do exemplo anterior: ---------------------------------------------------------------------- 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 ---------------------------------------------------------------------- import javax.swing.JOptionPane; public class Main { public static void main(String[] args) { // vamos pedir ao usuário para informar um caractere qualquer char caractere = JOptionPane.showInputDialog("Informe um caractere:").charAt(0); // vamos testar se o caractere informado é um dígito if(Character.getType(caractere) == Character.DECIMAL_DIGIT_NUMBER){ JOptionPane.showMessageDialog(null, "O caractere informado é um dígito"); } else{ JOptionPane.showMessageDialog(null, "O caractere informado não é um dígito"); } } } Finalmente, veja como ler uma string e verificar se ela contém apenas dígitos de 0 a 9: ---------------------------------------------------------------------- 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 ---------------------------------------------------------------------- import javax.swing.JOptionPane; public class Main { public static void main(String[] args) { // vamos pedir ao usuário para informar uma string String str = JOptionPane.showInputDialog("Informe uma string:"); // vamos verificar se a string contém apenas dígitos de 0 a 9 boolean soDigitos = true; // percorre todos os caracteres da string for(int i = 0; i < str.length(); i++){ if(!Character.isDigit(str.charAt(i))){ soDigitos = false; break; } } if(soDigitos){ JOptionPane.showMessageDialog(null, "A string contém apenas dígitos"); } else{ JOptionPane.showMessageDialog(null, "A string não contém somente dígitos"); } } } |
Java ::: Coleções (Collections) ::: ArrayList |
Como escrever um método que retorna um objeto da classe ArrayList do JavaQuantidade de visualizações: 16287 vezes |
Em algumas situações precisamos escrever um método Java que retorna um objeto da classe ArrayList. Esta dica mostra como isso pode ser feito:---------------------------------------------------------------------- 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 ---------------------------------------------------------------------- import java.util.*; public class Estudos{ public static void main(String[] args){ // vamos obter o ArrayList do método abaixo ArrayList<String> lista = obterLista(); // vamos exibir os valores dos elementos for(int i = 0; i < lista.size(); i++){ System.out.println(lista.get(i)); } System.exit(0); } // um método que retorna um ArrayList public static ArrayList<String> obterLista(){ // vamos criar um ArrayList, adicionar alguns elementos // e devolvê-la ao chamador do método ArrayList<String> nomes = new ArrayList<String>(); nomes.add("Osmar J. Silva"); nomes.add("Fernanda de Castro"); nomes.add("Marcos de Oliveira"); return nomes; } } |
Java ::: Classes e Componentes ::: JTable |
Java Swing - Como detectar qual linha ou coluna está selecionada em uma tabela JTableQuantidade de visualizações: 4 vezes |
Nesta dica mostrarei como podemos usar o método valueChanged() da interface ListSelectionListener para detectar qual linha ou coluna está selecionada em um objeto JTable. Essa técnica interessante, pois permite facilmente a construção de tabelas mestre-detalhe, na qual selecionamos um cliente em uma JTable e outra JTable é atualizada mostrando somente os pedidos para o cliente selecionado. Eis o resultado na imagem abaixo: ![]() Veja o código completo para o exemplo: ---------------------------------------------------------------------- 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; import javax.swing.*; import java.awt.*; import javax.swing.event.*; public class Estudos extends JFrame{ private boolean ALLOW_COLUMN_SELECTION = false; private boolean ALLOW_ROW_SELECTION = true; 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)); // permite selecionar apenas uma linha de cada vez tabela.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); // detecta seleções de linha if(ALLOW_ROW_SELECTION){ // verdadeiro por padrão ListSelectionModel rowSM = tabela.getSelectionModel(); rowSM.addListSelectionListener(new ListSelectionListener(){ public void valueChanged(ListSelectionEvent e){ if(e.getValueIsAdjusting()) return; ListSelectionModel lsm = (ListSelectionModel)e.getSource(); if(lsm.isSelectionEmpty()){ System.out.println("Nenhuma linha selecionada."); } else{ int selectedRow = lsm.getMinSelectionIndex(); System.out.println("Linha " + selectedRow + " foi selecionada."); } } }); } else{ tabela.setRowSelectionAllowed(false); } if(ALLOW_COLUMN_SELECTION){ // falso por padrão if(ALLOW_ROW_SELECTION){ tabela.setCellSelectionEnabled(true); } tabela.setColumnSelectionAllowed(true); ListSelectionModel colSM = tabela.getColumnModel().getSelectionModel(); colSM.addListSelectionListener(new ListSelectionListener(){ public void valueChanged(ListSelectionEvent e){ if(e.getValueIsAdjusting()) return; ListSelectionModel lsm = (ListSelectionModel)e.getSource(); if(lsm.isSelectionEmpty()) { System.out.println("Nenhuma coluna selecionada."); } else{ int selectedCol = lsm.getMinSelectionIndex(); System.out.println("Coluna " + selectedCol + " está selecionada."); } } }); } Container c = getContentPane(); c.setLayout(new FlowLayout()); JScrollPane scrollPane = new JScrollPane(tabela); c.add(scrollPane); setSize(400, 300); setVisible(true); } public static void main(String args[]){ Estudos app = new Estudos(); app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } } |
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 JavaScript |
Qual é o resultado da execução do seguinte código JavaScript?var resultado = Boolean(5 < 3); document.write(resultado); A) true B) NaN C) false D) Um erro de execução Verificar Resposta Estudar Cards Todas as Questões |
Vamos testar seus conhecimentos em Fenômeno de Transportes e Hidráulica |
Tipos de Escoamentos Um conduto cilíndrico interliga dois tanques de cerveja artesanal a uma velocidade constante e com diferença de 10 metros entre suas cotas. O fluido dentro dos tanques é mantido a uma pressão de 101.325 Pa e ocupa 95% da área do conduto quando transportado. Defina que tipo de escoamento ocorre nesse conduto e quais são os principais parâmetros que devem ser levados em consideração em seu cálculo de dimensionamento ou verificação. A) Ocorre escoamento em conduto forçado, pois o fluido está confinado sob uma pressão diferente da atmosférica. Os principais parâmetros para cálculo do conduto são a vazão que se deseja escoar e a energia total do escoamento. B) Ocorre escoamento à superfície livre, pois, mesmo tendo uma pressão diferente da atmosférica, o conduto não está completamente preenchido pelo fluido. Os principais parâmetros para cálculo do conduto são a vazão que se deseja escoar e a energia total do escoamento. C) Ocorre escoamento em conduto forçado, pois 95% preenchem praticamente toda a área do contorno sólido que confina a cerveja. Os principais parâmetros para cálculo do conduto são a vazão que se deseja escoar e a diferença de cota entre os tanques. D) Ocorre escoamento à superfície livre, pois 101.325 Pa é o valor médio da pressão atmosférica, além disso o conduto não está completamente preenchido pelo fluido. Os principais parâmetros para cálculo do conduto são a vazão que se deseja escoar e a energia total do escoamento. E) Ocorre escoamento à superfície livre, pois 101.325 Pa é o valor médio da pressão atmosférica, além disso o conduto não está completamente preenchido pelo fluido. Os principais parâmetros para cálculo do conduto são a vazão que se deseja escoar e a diferença de cota entre os tanques. Verificar Resposta Estudar Cards Todas as Questões |
Vamos testar seus conhecimentos em Hidrologia |
(CEBRASPE - 2024 - ITAIPU - Técnico em Hidrologia) A tabela a seguir apresenta os dados de precipitação mensal, com as respectivas quantidades de ocorrência, coletados em um posto de meteorologia, ao longo de determinado período.![]() A partir dos dados da tabela, é correto afirmar que a média ponderada da precipitação, no período de coleta, foi: A) inferior a 1.000 mm. B) superior a 1.000 mm e inferior a 1.500 mm. C) superior a 1.500 mm e inferior a 2.000 mm. D) superior a 2.000 mm e inferior a 2.500 mm. E) superior a 2.500 mm. Verificar Resposta Estudar Cards Todas as Questões |
Vamos testar seus conhecimentos em Ética e Legislação Profissional |
O código de ética profissional: Concorrência Em relação à concorrência perfeita, podemos dizer que se trata da competição pura. Essa estrutura sugere o funcionamento ideal ou equilibrado do mercado. A concorrência perfeita apresenta quatro características que a tornam o modelo econômico mais adequado. Assinale a alternativa que contém essas características. A) Baixo número de compradores e vendedores; produtos homogêneos; informações disponíveis; mobilidade. B) Elevado número de compradores e vendedores; produtos heterogêneos; informações disponíveis; mobilidade. C) Elevado número de compradores e vendedores; produtos homogêneos; informações confidenciais; mobilidade. D) Elevado número de compradores e vendedores; produtos homogêneos; informações disponíveis; mobilidade. E) Elevado número de compradores e vendedores; produtos homogêneos; informações disponíveis; fixidez. 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 |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
1º lugar: Java |