1. java
  2. android
  3. c#
  4. .net
  5. javascript
  6. php
  7. jquery
  8. html
  9. sql

Como usar os métodos equals e hashcode, como faço para aplicar no programa?

Olá,estou fazendo um curso de java, acabei travando em uma atividade que envolve uma lista do tipo de uma classe. A questão é: o id não pode se repetir, já li que posso fazer isso com equals e hashcode, mas ainda estou com muitas dúvidas,segue o código.

Classe program_Employee

import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

import entities.Employee;

public class Program_Emp {

    public static void main(String[] args) {
        Scanner sc  = new Scanner(System.in);
        List<Employee> list = new ArrayList<>();

        System.out.println("Quantos funcionario?");
        int n = sc.nextInt();
        for(int i=0;i<n;i++) {
            System.out.println("Employee #"+i);
            System.out.println("Id:");
            Integer id = sc.nextInt();
            sc.nextLine();
            System.out.println("Name:");
            String name = sc.nextLine();
            sc.nextLine();
            System.out.println("Salary:");
            Double salary = sc.nextDouble();
            Employee employee = new Employee(id,name,salary);
            list.add(i, employee);
        }    
            System.out.println("Enter the employee id that will have salary increase :");
            int acharId= sc.nextInt();
            System.out.println("Enter the percentage:");
            double per = sc.nextDouble();

            System.out.println("Index of: "+list.indexOf(acharId));
            }//vou encontrar o funionario e depois aplico a porcentagem
            //pegar a posicao do elemento e com a posicao alterar


        //for(Employee x: list) {
        //    System.out.println(list);
        //}

    }
    //id nao pode repetir

Classe Employee





package entities;

public class Employee {
    private Integer id;
    private String name;
    private Double salary;
    public Employee(Integer id, String name, Double salary) {
        super();
        this.id = id;
        this.name = name;
        this.salary = salary;
    }
    public Integer getId() {
        return id;
    }
    public void setId(Integer id) {
        this.id = id;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public Double getSalary() {
        return salary;
    }
    //public void setSalary(Double salary) {
    //    this.salary = salary;
    //}
    public String toString(){
        return id +","+name+","+salary;
    }
    @Override
    public int hashCode() {
        final int prime = 31;
        int result = 1;
        result = prime * result + ((id == null) ? 0 : id.hashCode());
        return result;
    }
    @Override
    public boolean equals(Object obj) {//compara se um objeto é igual ao outro
        if()
        /*if (this == obj)
            return true;
        if (obj == null)
            return false;
        if (getClass() != obj.getClass())
            return false;
        Employee other = (Employee) obj;
        if (id == null) {
            if (other.id != null)
                return false;
        } else if (!id.equals(other.id))
            return false;
        return true;*/
    }
  1. Você vai ver essas setas em qualquer página de pergunta. Com elas, você pode dizer se uma pergunta ou uma resposta foram relevantes ou não.
  2. Edite sua pergunta ou resposta caso queira alterar ou adicionar detalhes.
  3. Caso haja alguma dúvida sobre a pergunta, adicione um comentário. O espaço de respostas deve ser utilizado apenas para responder a pergunta.
  4. Se o autor da pergunta marcar uma resposta como solucionada, esta marca aparecerá.
  5. Clique aqui para mais detalhes sobre o funcionamento do GUJ!

0 resposta

Não é a resposta que estava procurando? Procure outras perguntas com as tags java ou faça a sua própria pergunta.