![]() |
|
||||
|
|||||
Você está aqui: Cards de Engenharia Civil - Construção Civil |
||
|
||
|
|
||
Java ::: Coleções (Collections) ::: Set (Conjunto) |
Java Collections - Como usar a interface Set em seus códigos JavaQuantidade de visualizações: 5459 vezes |
|
A interface Set estende a interface Collection mas não adiciona novos métodos ou constantes. Em vez disso, esta interface define que uma instância de Set não contenha elementos duplicados. Esta responsabilidade é transferida para as classes que implementam a interface. A classe abstrata AbstractSet é uma classe de conveniência que herda da classe também abstrata AbstractCollection e implementa a interface Set. A classe AbstractSet fornece implementações concretas para os métodos equals() e hashCode(). Estes métodos permitem a funcionalidade da não permissão de elementos duplicados nos conjuntos. As classes concretas mais conhecidas da interface Set são: HashSet - Esta classe é implementada em cima de uma tabela hash, ou seja, um array (matriz) na qual os elementos são armazenados em posições calculadas de acordo com o seu conteúdo. Uma característica interessante de HashSet é que os elementos raramente são retornados na mesma ordem na qual foram inseridos. LinkedHashSet - Esta classe estende a classe HashSet com uma implementação de lista ligada (linked list) que permite a ordenação dos elementos no conjunto. TreeSet - Esta classe é uma classe concreta que implementa a interface SortedSet. A interface SortedSet é uma sub-interface de Set que garante que os elementos no conjunto estejam ordenados. Além disso, esta interface fornece os métodos first() e last() para acessar o primeiro e o último elemento do conjunto. Há ainda os métodos headSet(toElement) e tailSet(fromElement) para retornar uma faixa do conjunto cujos elementos sejam "menores" que toElement e "maiores" que fromElement. Seja qual for a implementação de Set que você queira usar, é sempre uma boa idéia codificar em cima da interface. Isso facilita a troca de HashSet por TreeSet ou vice-versa sem grandes modificações no seu código. Veja um exemplo no qual usamos a classe concreta HashSet para representar um conjunto de cinco strings únicas:
package estudos;
import java.util.HashSet;
import java.util.Iterator;
import java.util.Set;
public class Estudos{
public static void main(String[] args) {
// vamos criar uma instância da classe HashSet
Set<String> conjunto = new HashSet<>();
// vamos inserir cinco elementos no Set
conjunto.add("Açucar");
conjunto.add("Macarrão");
conjunto.add("Feijão");
conjunto.add("Carne");
conjunto.add("Maionese");
// vamos exibir os elementos inseridos
Iterator iterator = conjunto.iterator();
while(iterator.hasNext()){
System.out.println(iterator.next());
}
}
}
Ao executar este trecho de código teremos um resultado parecido com: Macarrão Feijão Carne Açucar Maionese Note que raramente os elementos serão exibidos na ordem na qual eles foram inseridos. Experimente agora trocar a linha: Set<String> conjunto = new HashSet<>(); por Set<String> conjunto = new LinkedHashSet<>(); Execute o código novamente e verá que agora os elementos são exibidos na mesma ordem que foram inseridos. |
C ::: Desafios e Lista de Exercícios Resolvidos ::: C Básico |
Exercício Resolvido de C - Como calcular o restante de um salário após o pagamento de duas contas com jurosQuantidade de visualizações: 1196 vezes |
|
Pergunta/Tarefa: Cintia acaba de receber seu salário mas precisa pagar duas contas atrasadas. Por causa do atraso, ela deverá pagar multa de 2% sobre cada conta. Faça um programa que leia o valor do salário e das duas contas e que calcule e mostre quanto restará do salário de Cintia. Sua saída deverá ser parecida com: Informe o salário: 1350 Valor da primeira conta: 140 Valor da segunda conta: 300 Total das contas sem juros: 440.0 Total dos juros: 8.8 Total das contas com juros: 448.8 Sobra do salário: 901.2 Veja a resolução comentada deste exercício usando C:
#include <stdio.h>
#include <stdlib.h>
#include <locale.h>
int main(int argc, char *argv[]){
setlocale(LC_ALL,""); // para acentos do português
double salario, conta1, conta2, total_contas;
double total_juros, total_contas_com_juros;
double total_contas_sem_juros, sobra_salario;
// vamos pedir que o usuário informe o valor do salário e das duas contas
printf("Informe o salário: ");
scanf("%lf", &salario);
printf("Valor da primeira conta: ");
scanf("%lf", &conta1);
printf("Valor da segunda conta: ");
scanf("%lf", &conta2);
// total a ser pago nas duas contas sem os juros
total_contas = conta1 + conta2;
// calcula os juros
total_juros = total_contas * 0.02;
// total a ser pago com juros
total_contas_com_juros = total_contas + total_juros;
// sobra do salário
sobra_salario = salario - total_contas_com_juros;
// mostra os resultados
printf("\nTotal das contas sem juros: %lf", total_contas);
printf("\nTotal dos juros: %lf", total_juros);
printf("\nTotal das contas com juros: %lf", total_contas_com_juros);
printf("\nSobra do salário: %lf", sobra_salario);
printf("\n\n");
system("PAUSE");
return 0;
}
|
Java ::: Desafios e Lista de Exercícios Resolvidos ::: Laços de Repetição |
Exercícios Resolvidos de Java - Ler a idade e o peso de 10 pessoas e mostrar a quantidade de pessoas com mais de 80 quilos e a média das idadesQuantidade de visualizações: 2454 vezes |
|
Pergunta/Tarefa: Escreva um programa Java que receba a idade (como int) e o peso (como double) de 10 pessoas. Em seguida calcule e mostre: 1) A quantidade de pessoas com mais de 80 quilos; 2) A média das idades das pessoas. Sua saída deve ser parecida com: Informe a idade da 1.a pessoa: 95 Informe o peso da 1.a pessoa: 83 Informe a idade da 2.a pessoa: 45 Informe o peso da 2.a pessoa: 115 Informe a idade da 3.a pessoa: 83 Informe o peso da 3.a pessoa: 76 Informe a idade da 4.a pessoa: 19 Informe o peso da 4.a pessoa: 79 Informe a idade da 5.a pessoa: 40 Informe o peso da 5.a pessoa: 93 Quantidade de pessoas com mais de 80 quilos: 3 Média das idades das pessoas: 56.4 Veja a resolução comentada deste exercício usando Java:
package estudos;
import java.util.Scanner;
public class Estudos {
public static void main(String[] args) {
// para ler a entrada do usuário
Scanner entrada = new Scanner(System.in);
int quant_acima_80_kg = 0; // quantidade de pessoas acima de 80 quilos
int soma_idades = 0; // soma das idades para depois obter a média
// vamos ler os dados das 5 pessoas
for(int i = 0; i < 5; i++){
System.out.print("Informe a idade da " + (i + 1) + ".a pessoa: ");
int idade = Integer.parseInt(entrada.nextLine());
System.out.print("Informe o peso da " + (i + 1) + ".a pessoa: ");
double peso = Double.parseDouble(entrada.nextLine());
// vamos somar mais esta idade
soma_idades = soma_idades + idade;
// esta pessoa possui mais de 80 quilos?
if(peso > 80){
// aumenta o contador de pessoas acima de 80 quilos
quant_acima_80_kg++;
}
// adiciona uma quebra de linha
System.out.println();
}
// e agora mostramos o resultado
System.out.println("Quantidade de pessoas com mais de 80 quilos: " +
quant_acima_80_kg);
System.out.println("Média das idades das pessoas: " + (soma_idades / 5.0));
}
}
|
Ruby ::: Fundamentos da Linguagem ::: Passos Iniciais |
Qual é a diferença entre print e puts em Ruby?Quantidade de visualizações: 12879 vezes |
|
Tanto a função print quanto a função puts do Ruby nos permite escrever na tela, ou seja, exibir ao usuário o resultado do processamento das operações requisitas. Então, qual a diferença entre elas? A instrução puts é uma abreviação de "put string" e automaticamente move o cursor para a próxima linha. A instrução print é usada quando queremos escrever e manter o cursor na mesma linha. Veja um exemplo completo a seguir: # Este exemplo mostra a diferença entre as funções # print e puts da linguagem Ruby # vamos construir uma frase aqui frase = "Gosto muito de Ruby" # vamos exibir a frase usando duas chamadas print e # depois duas chamadas puts print frase print frase puts frase puts frase Ao executar este código Ruby nós teremos o seguinte resultado: Gosto muito de RubyGosto muito de RubyGosto muito de Ruby Gosto muito de Ruby Note que as duas primeiras chamadas a print escreveram na mesma linha. Porém, a primeira chamada a puts escreveu na mesma linha anterior, mas já colocou uma quebra de linha após a escrita. As duas funções, contudo, permitem o uso do caractere de quebra de linha. Veja: # Este exemplo mostra a diferença entre as funções # print e puts da linguagem Ruby # vamos construir uma frase aqui frase = "Gosto muito de Ruby" # vamos exibir a frase usando duas chamadas print e # depois duas chamadas puts print frase + "\n" print frase + "\n" puts frase + "\n\n" puts frase Ao executar este novo código nós teremos o seguinte resultado: Gosto muito de Ruby Gosto muito de Ruby Gosto muito de Ruby Gosto muito de Ruby |
Java ::: Dicas & Truques ::: Strings e Caracteres |
Como remover todos os espaços de uma string usando o método replace() da classe String da linguagem JavaQuantidade de visualizações: 1 vezes |
|
Nesta dica mostrarei como usar o método replace() da classe String do Java para remover todos os espaços de uma frase ou texto, tanto no início, fim e no meio. Note que esta dica remove TODOS os espaços, não somente os espaço excessivos. Para isso veja outras dicas dessa seção. Veja o código Java completo para o exemplo:
package arquivodecodigos;
public class Estudos{
public static void main(String[] args){
String frase = "Programar em Java é muito bom";
System.out.println("Com espaços: " + frase);
frase = frase.replace(" ", "");
System.out.println("Sem espaços: " + frase);
System.exit(0);
}
}
Ao executar este código nós teremos o seguinte resultado: Com espaços: Programar em Java é muito bom Sem espaços: ProgramaremJavaémuitobom |
Desafios, Exercícios e Algoritmos Resolvidos de Java |
Veja mais Dicas e truques de Java |
Dicas e truques de outras linguagens |
|
Java - Programação Orientada a Objetos em Java - Como usar o modificador static em suas aplicações Java |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
|
1º lugar: Java |





