HashSet ile benzersiz nesne eleman kaydı

Android Yazılım konuları
Cevapla
abdulkadirlevent
Site Admin
Mesajlar: 24
Kayıt: Pzr Oca 19, 2020 4:27 pm

HashSet ile benzersiz nesne eleman kaydı

Mesaj gönderen abdulkadirlevent »

HashSet ile benzersiz nesne kaydını engelleme

Aynı "id" alanına sahip kişiler listeye eklenmez.

Kod: Tümünü seç

import java.util.HashSet;

public class HashSetNesneMain {

    public static void main(String args[]) {

        HashSet<Personel> personeller = new HashSet<>();

        // Yeni personeller olustur
        Personel p1 = new Personel(1,"Yusuf","Karakoyun",32);
        Personel p2 = new Personel(2,"Merve","Uzun",20);
        Personel p3 = new Personel(3,"Veysi","Kısa",18);
        Personel p4 = new Personel(4,"Cemal","Cefakar",42);
        Personel p5 = new Personel(5,"Yunus","Fedakar",34);
        // personelleri Ana listeye ekle
        personeller.add(p1);
        personeller.add(p2);
        personeller.add(p3);
        personeller.add(p4);
        personeller.add(p5);
        
        // TEST ET
        // Aynı id olan Personeller Listeye eklenmez. 1, 3, 5 id var
        Personel p6 = new Personel(1,"yeni","eleman",30);
        Personel p7 = new Personel(3,"sıfır","elaman",32);
        Personel p8 = new Personel(5,"güzel","elaman",34);

        personeller.add(p6);
        personeller.add(p7);
        personeller.add(p8);

        // Tüm Listeyi yazdır
        for(Personel p :personeller){
            System.out.println("Personel adı :" +p.getAdi() + " Soyadı :" +p.getSoyadi() + " Yaşı :" + p.getYasi());
        }

    }
}

Güncellenen Personel SINIFI

Kod: Tümünü seç

import android.support.annotation.NonNull;

public class Personel implements Comparable<Personel> {
    public int id;
    public String adi;
    public String soyadi;
    public int yasi;
    public static int sayac;

    public Personel() {
        sayac++;
    }

    public Personel(int id,String adi, String soyadi, int yasi) {
        sayac++;
        this.id = id;
        this.adi = adi;
        this.soyadi = soyadi;
        this.yasi = yasi;
    }

    public String getAdi() {
        return adi;
    }

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public void setAdi(String adi) {
        this.adi = adi;
    }

    public String getSoyadi() {
        return soyadi;
    }

    public void setSoyadi(String soyadi) {
        this.soyadi = soyadi;
    }

    public int getYasi() {
        return yasi;
    }

    public void setYasi(int yasi) {
        this.yasi = yasi;
    }

    public static int getSayac() {
        return sayac;
    }

    public static void setSayac(int sayac) {
        Personel.sayac = sayac;
    }

    /**
     * Yaşına veya adına göre otomatik sıralama
     * @param o
     * @return
     */
    @Override
    public int compareTo(@NonNull Personel o) {
        //return new Integer(this.yasi).compareTo(o.getYasi());
        return new String(this.adi).compareTo(o.getAdi());
    }

    @Override
    public int hashCode() {
        return this.id;
    }

    /**
     * Aynı verinin 2.kez kaydını engellemek için kullanılacak
     * @param obj
     * @return
     */
    @Override
    public boolean equals(Object obj) {
        if(this.id==((Personel)obj).getId()){
            return   true;
        }else{
            return false;
        }
    }
}


Cevapla