1 Overview In this assignment, you will be using an instance of an ArrayList to
ID: 3868143 • Letter: 1
Question
1 Overview In this assignment, you will be using an instance of an ArrayList to create an integer set data structure. A set is a collection of unique values In this case our set will hold only integers, and we will also add the additional property that our set will be sorted (mathematical sets are unordered and two sets are equivalent if they contain the same elements, regardless of order). 2 Requirements You should implement the IntSet class according to the following UML dia- gram. Be sure to include a small comment for at least each non-trivial method. IntSet elements Array ListcInteger> +IntSet) +IntSet(other: Int Set +equals(other Int Set):boolea toString: String +size): int isEmptyO: boolean +contains(element: Integer): hoolean +add(element: Integer): boolean +remove(element: Integer): boolean + elear +union(other: IntSet): Int Set +differencelother: IntSet): IntSet +intensection(other: Int Set): IntSet 1·The default (no-argument) constructor should initialize an empty set.Explanation / Answer
Hi,
Please see below the answer:
IntSet.java
import java.util.ArrayList;
public class IntSet {
private ArrayList<Integer> elements;
//no-arg constructor
public IntSet(){
//initializing an empty set
this.elements = new ArrayList<Integer>();
}
//parameterised constructor
public IntSet(ArrayList<Integer> elements){
this.elements = (ArrayList<Integer>) elements.clone();
}
/**
* to check if another object of IntSet is same as this IntSet
* @param other
* @return boolean
*/
public boolean equals(IntSet other){
for(int i=0;i<this.getElements().size();i++){
if(this.elements.get(i) == other.getElements().get(i)){
continue;
}
else{
return false;
}
}
return true;
}
/**
* Returns the string form
*/
public String toString(){
String elementsStr = "[";
for(int i=0;i<this.getElements().size();i++){
elementsStr = elementsStr + this.getElements().get(i) + " ";
}
elementsStr = elementsStr + "]";
return elementsStr;
}
/**
* Return the size of elements arraylist
* @return int
*/
public int size(){
return this.getElements().size();
}
/**
* To check if the arraylist is empty
* @return boolean
*/
public boolean isEmpty(){
if(this.getElements().size() == 0){
return true;
}
return false;
}
/**
* To check a given Integer is present in arraylist
* @param element
* @return boolean
*/
public boolean contains(Integer element){
for(int i=0;i<this.getElements().size();i++){
if(this.getElements().get(i) == element){
return true;
}
}
return false;
}
/**
* To add an Integer to arraylist
* @param element
* @return boolean
*/
public boolean add(Integer element){
int i= 0;
if(contains(element)){
return false;
}
//Finding the index i To get the sorted set
for(int k=0;k<this.getElements().size();k++){
if(element < this.getElements().get(k) ){
i = k;
break;
}
else{
i = k+1;
}
}
this.getElements().add(i,element);
return true;
}
/**
* To remove an Integer from arraylist
* @param element
* @return boolean
*/
public boolean remove(Integer element){
if(!contains(element)){
return false;
}
this.getElements().remove(element);
return true;
}
/**
* to clear the arraylist
*/
public void clear(){
this.elements.clear();
}
/**
* To add another IntSet object's arraylist elements to this arraylist
* @param other
* @return
*/
public IntSet union(IntSet other){
IntSet union = new IntSet(this.getElements());
for(int i=0;i<other.getElements().size();i++){
union.add(other.getElements().get(i));
}
return union;
}
/**
* To difference another IntSet object's arraylist elements from this arraylist
* @param other
* @return
*/
public IntSet difference(IntSet other){
IntSet difference = new IntSet(this.getElements());
for(int i=0;i<other.getElements().size();i++){
difference.remove(other.getElements().get(i));
}
return difference;
}
/**
* To intersect another IntSet object's arraylist elements from this arraylist
* @param other
* @return
*/
public IntSet intersection(IntSet other){
IntSet intersection = new IntSet();
for(int i=0;i<other.getElements().size();i++){
if(this.contains(other.getElements().get(i))){
intersection.add(other.getElements().get(i));
}
}
return intersection;
}
//Setters and Getters
public ArrayList<Integer> getElements() {
return elements;
}
public void setElements(ArrayList<Integer> elements) {
this.elements = elements;
}
}
IntSetDriver.java
public class IntSetDriver {
public static void main(String[] args) {
System.out.println("Enter items: 5 3 2 4 1");
IntSet set1 = new IntSet();
set1.add(5);
set1.add(3);
set1.add(2);
set1.add(4);
set1.add(1);
System.out.println("Enter items: 5 4 7 6 3");
IntSet set2 = new IntSet();
set2.add(5);
set2.add(4);
set2.add(7);
set2.add(6);
set2.add(3);
System.out.println("Set 1 = "+set1);
System.out.println("Set 2 = "+set2);
//union
System.out.println("Union = "+set1.union(set2));
//intersection
System.out.println("Intersection = "+set1.intersection(set2));
//Difference
System.out.println("Set 1 - Set 2 = "+set1.difference(set2));
System.out.println("Set 2 - Set 3 = "+set2.difference(set1));
}
}
Sample Output:
Enter items: 5 3 2 4 1
Enter items: 5 4 7 6 3
Set 1 = [1 2 3 4 5 ]
Set 2 = [3 4 5 6 7 ]
Union = [1 2 3 4 5 6 7 ]
Intersection = [3 4 5 ]
Set 1 - Set 2 = [1 2 ]
Set 2 - Set 3 = [6 7 ]
Related Questions
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.