Ir ao conteúdo
  • Cadastre-se

AdrianoSiqueira

Membro Pleno
  • Posts

    1.287
  • Cadastrado em

  • Última visita

Tudo que AdrianoSiqueira postou

  1. O método map aplica uma conversão em cada um dos elementos do stream. Para facilitar o entendimento, imagine que o map executar um for, aplicando a conversão em cada iteração. O método collect serve para agrupar os elementos do stream. A lógica desse agrupamento depende do coletor utilizado. Para mais informações, veja esses vídeos: https://www.youtube.com/playlist?list=PL62G310vn6nFIsOCC0H-C2infYgwm8SWW, mais especificamente da aula 213 a 217.
  2. Mesma lógica dessa, apenas muda na parte do laço de repetição e nos testes condicionais.
  3. Você vai precisar de quatro coisas: Um vetor: devmedia. Um laço de repetição: javaprogressivo. Uma maneira de manipular entrada de dados: devmedia. Um teste condicional: excript e excript. Tente fazer e ajudaremos no que precisar.
  4. Procure organizar suas classes de um jeito que faça sentido para que sejam encontradas facilmente, afinal o objetivo é facilitar o trabalho. Manter um código limpo e organizado também ajuda muito, tanto a você quanto para os outros que estejam trabalhando com você. Então se você acha que é um bom negócio criar esses pacotes, crie. O importante é não complicar as coisas.
  5. Qual sua dúvida exatamente? Para que uma classe seja uma thread, ela precisa estender a classe Thread: public class MinhaThread extends Thread {} Por outro lado, se você deseja que sua classe seja executada dentro de uma thread, ela pode implementar a interface Runnable: public class MeuRunnable implements Runnable { @Override public void run() {} } A thread se encarregará de chamar o método run. Para usar cada uma delas, faça assim: public class Exemplo { public static void main(String[] args) { exemploRunnable(); exemploThread(); } private static void exemploRunnable() { Thread thread = new Thread(new MeuRunnable()); thread.start(); } private static void exemploThread() { Thread thread = new MinhaThread(); thread.start(); } } Não estou familiarizado com o conceito de semáforos, mas na minha opinião seria mais fácil implementar os caixas como sendo os runnables, dessa forma seria possível usar o ExecutorService para controlar quantas threads seriam executadas simultaneamente.
  6. @Alisson tunico Poste o CSS do formulário que está com a formatação correta, e a gente vê como podemos ajudar.
  7. Seu objeto unidade não está sendo atribuído corretamente. Depure o código dando mais atenção ao método obterUnidade. Provavelmente o culpado é ele (ou está relacionado com ele).
  8. O erro está no método que calcula a remuneração. Faça assim que funciona: public double calcularRemuneracao(LocalDate data) { Predicate<Contrato> pertenceAoMesEAoAno = c -> { LocalDate inicio = data.withDayOfMonth(1).minusDays(1); LocalDate fim = data.withDayOfMonth(data.lengthOfMonth()).plusDays(1); LocalDate dataContrato = c.getData(); return dataContrato.isAfter(inicio) && dataContrato.isBefore(fim); }; double valorContratos = contratos.stream() .filter(pertenceAoMesEAoAno) .map(Contrato::getValorContrato) .reduce(Double::sum) .orElse(0.0); return salario + valorContratos; } Caso queira ver as modificações que eu fiz, segue o pacote: src.7z
  9. Basta criá-lo com a mesma assinatura da interface. Por exemplo, se na interface está assim: void chat(String x); Na classe Server deve estar assim: public void chat(String x) { } Se na interface está assim: void chat(String a, String b); Na classe Server deve estar assim: public void chat(String a, String b) { } O tipo de retorno, o nome do método e o tipo dos parâmetros devem coincidir com o que foi declarado na interface. Já o nome dos parâmetros não importa, podendo ser qualquer coisa, respeitando o padrão de nomenclatura do Java.
  10. A classe Server não implementou o método chat.
  11. Basicamente você precisa disso: int quantidade = Integer.parseInt(JOptionPane.showInputDialog("Digite a quantidade:")); String[] nomes = new String[quantidade];
  12. Tem um erro no primeiro for de preenchimento do terceiro vetor. A condição de parada deve ser o tamanho do primeiro vetor. Você precisa de uma variável dedicada para armazenar o índice de inserção do terceiro vetor.
  13. Você não importou a classe Arrays.
  14. Cria os três vetores e preenche dois deles. Depois rode um for, some o valor do primeiro com o segundo e armazene o resultado no terceiro. Assim: terceiro[i] = primeiro[i] + segundo[i];
  15. As melhores peças que eu conheço são: Core i9 12900K RTX 3080 TI Para memória, uns 16GB dá conta do recado. Sobre placa-mãe eu estou por fora. Alguém mais informado sobre o mercado vai poder dar umas dicas melhores.
  16. Provavelmente é só para ler um vetor e exibir os valores na tela.
  17. Para saber se um número é par, você não faz a divisão, e sim verifica o resto da divisão: if (numero % 2 == 0) { // Par } else { // Impar } Veja se isso ajuda: import java.util.Arrays; import java.util.StringJoiner; import java.util.concurrent.ThreadLocalRandom; public class Vetor { public static void main(String[] args) { int[] vetor = new int[10]; // Preenche o vetor com números aleatórios entre 1 e 100 preencherVetor(vetor); // Imprime o vetor System.out.println(" Vetor: " + Arrays.toString(vetor)); // Imprime apenas os ímpares imprimirImpares(vetor); } private static void imprimirImpares(int[] vetor) { StringJoiner joiner = new StringJoiner(", ", "[", "]"); for (int j : vetor) { if (j % 2 != 0) { joiner.add(String.valueOf(j)); } } System.out.println("Ímpares: " + joiner); } private static void preencherVetor(int[] vetor) { ThreadLocalRandom random = ThreadLocalRandom.current(); for (int i = 0; i < vetor.length; i++) { vetor[i] = random.nextInt(1, 101); } } }
  18. Meu palpite era que fosse alguma configuração de controle parental ativado por acidente, mas como acontece em horários diferentes acho que não é isso.
  19. Então só analisando o código todo. Só o trecho que você postou, aparentemente não tem nenhum erro.
  20. Sem um contexto fica difícil dizer com exatidão, mas basicamente você usa um if para saber se a entrada é menor que 0, se for você não executa a ação. Mais ou menos assim: if (entrada < 0) { System.out.println("Valor negativo não é aceito."); } else { System.out.println("Adicionando o valor no vetor"); // Adicionar a entrada no vetor }

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!