2swan

Set 제네릭 본문

Programming/Java

Set 제네릭

2swan 2023. 12. 12. 17:02

boolean형 값을 리턴해준다.

순서를 허용하지 않고 중복된 값을 넣을 시 false가 나오며 허용하지 않는다.

package generic2;

import java.util.HashSet;
import java.util.Iterator;
import java.util.Set;

public class SetExam {
    public static void main(String[] args) {
        Set<String> set = new HashSet<>();
//        set.add("kim");
//        set.add("lee");
//        set.add("hong");

        boolean flag1 = set.add("kim");
        boolean flag2 = set.add("lee");
        boolean flag3 = set.add("hong");
        boolean flag4 = set.add("hong");
        System.out.println(flag1);
        System.out.println(flag2);
        System.out.println(flag3);
        System.out.println(flag4);

        Iterator<String> iter = set.iterator();
        while (iter.hasNext()) {
            String str = iter.next();
            System.out.println(str);
        }
    }
}

///
true
true
true
false
hong
lee
kim

 

 

 

package generic2;

import java.util.HashSet;
import java.util.Iterator;
import java.util.Set;

public class SetExam02 {
    public static void main(String[] args) {
        Set<MyData> mySet = new HashSet<>();
        mySet.add(new MyData("kim",500));
        mySet.add(new MyData("lee", 200));
        mySet.add(new MyData("hong", 700));

        Iterator<MyData> iterator = mySet.iterator();
        while (iterator.hasNext()) {
            MyData myData = iterator.next();
            System.out.println(myData);
        }
    }
}

class MyData{
    private String name;
    private int value;

    public MyData(String name, int value) {
        this.name = name;
        this.value = value;
    }

    public String getName() {
        return name;
    }

    public int getValue() {
        return value;
    }

    @Override
    public String toString() {
        return "MyData{" +
                "name='" + name + '\'' +
                ", value=" + value +
                '}';
    }
}

 

 

package generic2;

import java.util.HashSet;
import java.util.Iterator;
import java.util.Objects;
import java.util.Set;

public class SetExam02 {
    public static void main(String[] args) {
        Set<MyData> mySet = new HashSet<>();
        mySet.add(new MyData("kim",500));
        mySet.add(new MyData("lee", 200));
        mySet.add(new MyData("hong", 700));
        mySet.add(new MyData("hong", 700));

        Iterator<MyData> iterator = mySet.iterator();
        while (iterator.hasNext()) {
            MyData myData = iterator.next();
            System.out.println(myData);
        }
    }
}

class MyData{
    //Hash 사용시 equlas와 hashcode 오버라이딩 해준다. 
    @Override
    public boolean equals(Object o) {
        if (this == o) return true;
        if (o == null || getClass() != o.getClass()) return false;
        MyData myData = (MyData) o;
        return value == myData.value && Objects.equals(name, myData.name);
    }

    @Override
    public int hashCode() {
        return Objects.hash(name, value);
    }

    private String name;
    private int value;

    public MyData(String name, int value) {
        this.name = name;
        this.value = value;
    }

    public String getName() {
        return name;
    }

    public int getValue() {
        return value;
    }

    @Override
    public String toString() {
        return "MyData{" +
                "name='" + name + '\'' +
                ", value=" + value +
                '}';
    }
}

'Programming > Java' 카테고리의 다른 글

Sort 정렬  (0) 2023.12.12
Map 제네릭  (0) 2023.12.12
Collection & Iterator 예시  (0) 2023.12.12
ArrayList 제네릭 타입 사용 예시  (0) 2023.12.12
컬렉션 프레임워크 종류  (0) 2023.12.12