This week's book giveaway is in the OO, Patterns, UML and Refactoring forum. We're giving away four copies of Refactoring for Software Design Smells: Managing Technical Debt and have Girish Suryanarayana, Ganesh Samarthyam & Tushar Sharma on-line! See this thread for details.
Without knowing the domain in which this might be used, it is unclear. I will say to me, it seems odd. Usually, when an object contains a collection of itself, there is a parent/child relationship. For example, a Category object having a collection of Category objects where the collection is children of the parent. So it kind of depends on how you are using State in your application.
You will have to work out your design depending on what you plan to do with this class. It does seem peculiar that you have a Set<State> inside its own class, however.
Do you really want each State to have references to other states? That may mean a lot of Sets with a lot of references in each.
Do you want the Set to be shared between all the States? In which case it should be labelled static and (probably) instantiated in a static initialiser block.