X368: LinkedBagSetAdd

For this question assume the following code:

public class LinkedBag<T> implements BagInterface<T>{
    private Node firstNode;
    private int numberOfEntries;
    private Node currentNode;

    public LinkedBag() {
      firstNode = null;
      numberOfEntries = 0;
      currentNode = firstNode;

    public LinkedBag() {
       firstnode = null;
       numberOfEntries = 0;
       currentnode = firstnode;
    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;

Recall that a set is a datastructure that only stores unique values.

Given the following method signature, write an add method that would only add unique values to the LinkedBag. If a duplicate value would be added, your code should 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 returnfalse` and no value would be added.

You will not have access to any of the methods defined in BagInterface


Practice a different Java exercise