public class LinkedBag<T> implements BagInterface<T>{
private Node firstNode;
private int numberOfEntries;
public LinkedBag() {
firstNode = null;
numberOfEntries = 0;
}
public int getCurrentSize(){
return numberOfEntries;
}
}
public static class Node<T> {
private T data;
private Node<T> next;
public Node(T dataPortion, Node<T> nextNode) {
data = dataPortion;
next = nextNode;
} // end constructor
public Node(T dataPortion) {
this(dataPortion, null);
} // end constructor
public Node<T> getNext() {
return next;
}
public void setNext(Node<T> newNext) {
next = newNext;
}
public T getData() {
return data;
}
public void setData(T data) {
this.data = data;
}
}
//Answer:
public boolean addLikeASet (T anEntry) {
if(anEntry == null) {
return false;
}
else if(firstNode == null){
firstNode.setData(anEntry);
return true;
}
else if(firstNode.data == anEntry){
return false;
}
Node n = firstNode;
while(n.next != null){
n = n.next;
if(n.data == anEntry){
return false;
}
}
n.setData(anEntry);
return true;
I am trying to create a method called addLikeASet where it adds anEntry to the Node only if there isn't pre-existing data that equals the parameter "anEntry" in which case it will return false
For example, if a LinkedBag contained "A", "B", and "C":
Calling addLikeASet("D") would return true and add "D" to the LinkedBag.
- However, calling addLikeASet("C")would return `false` and no value would be added.
Still, my code only works partially and doesn't cover all the possibilities.