Why is my LinkedHashSet empty within the toString() method?

Viewed 197

I have a simple class extending LinkedHashSet and am trying to override the toString() method. I've added some elements to the Set in the main method, however within my toString method, the Set is empty. The code:

import java.util.*;
import java.util.*;

public class MyHashSet<T> extends LinkedHashSet<T>{
    private Set <T> myHashSet;


    public MyHashSet (){
        myHashSet = new HashSet<T>(5);
    }

    @Override
    public String toString(){
         if (myHashSet.isEmpty())
            return "This MyHashSet is empty.";
         else
            return myHashSet.toString();
    }

    public static void main (String[] args){
         MyHashSet <String> myHashSet = new MyHashSet<>();

         myHashSet.add("A");
         myHashSet.add("B");
         myHashSet.add("C");
         myHashSet.add("D");
         myHashSet.add("E");

         System.out.println(myHashSet);

         System.out.println(myHashSet.isEmpty());
    }
}

returns the following:

This MyHashSet is empty.
false

I'm expecting toString() to instead return

[A, B, C, D, E]

What am I doing wrong? Thanks in advance.

2 Answers
Related