2swan
Set 제네릭 본문
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 |