특정 조건에 맞는 원소들의 모임
HashSet a = new HashSet(Arrays.asList(1,2,3,4,5));
HashSet b = new HashSet(Arrays.asList(2,4,6,8,10));
a.retainAll(b);
System.out.println(a);
retainAll
메소드를 통해 교집합만 남길 수 있다.
a.addAll(b);
addAll
메소드를 통해 합집합을 만들 수 있다.
a.removeAll(b);
removeAll
메소드를 통해 차집합을 만들 수 있다.
class MySet{
ArrayList<Integer> list;
MySet(){
this.list = new ArrayList<Integer>();
}
MySet(int[] arr){
this.list = new ArrayList<Integer>();
for (int item: arr){
this.list.add(item);
}
}
public void add(int x){
for(int item: this.list){
if(item == x){
return;
}
}
this.list.add(x);
}
// 교집합
public MySet retainAll(MySet b) {
MySet result = new MySet();
for(int itemA : this.list) {
for (int itemB : b.list) {
if(itemA == itemB){
result.add(itemA);
}
}
}
return result;
}
// 합집합
public MySet addAll(MySet b) {
MySet result = new MySet();
for (int itemA : this.list){
result.add(itemA);
}
for (int itemB : b.list){
result.add(itemB);
}
return result;
}
//차집합
public MySet removeAll(MySet b) {
MySet result = new MySet();
for(int itemA : this.list) {
for(int itemB : b.list) {
if(itemA == itemB){
continue;
}
result.add(itemA);
}
}
return result;
}
}