You probably could use an EnumSet as a key to lookup records in a HashSet, however that is unlikely what you want. Let us say you had an EnumSet of tree attributes: Deciduous, Rainforest, Desert, Temperate, Hardwood…. You might want to see all the records in your collection what were Deciduous Temperate or Deciduous Temperate but not Hardwood. Java does not have built-in tools for doing this. What could you do?
Probably the easiest way to handle this is to put all your data in an SQL (Standard Query Language) engine and leave it up to the designers of the engine to optimise the searches.
You could define a tri-bit string 0=must not be present 1=must be present 2=does not matter, to describe the combinations you are looking for.
You could use two EnumSets, one for what you definitely want, and one for what you definitely don’t want. Any enum not mentioned in either is irrelevant.
Here are some possible approaches to implementation:
// wanted, candidate notWanted and candidate are longs. boolean take = ( wanted & candidate & ~( notWanted & candidate ) ) != 0;
available on the web at:
optional Replicator mirror
Please email your feedback for publication, letters to the editor, errors, omissions, typos, formatting errors, ambiguities, unclear wording, broken/redirected link reports, suggestions to improve this page or comments to Roedy Green : . If you want your message, your name or email kept confidential, not considered for public posting, please explicitly specify that. Unless you state otherwise, I will treat your message as a letter to the editor that I may or may not publish in the feedback section. After that, it will be too late to retract it. If you disagree with something I said, especially when sending an ad-hominem attack, a rant composed mainly of obscenities or a death threat, please quote the offending passage and cite the web page where you found it, tell me why you think it is wrong, and, if possible, provide some supporting evidence. I can’t very well fix erroneous or ambiguous text if I can’t find it.
Your face IP:[126.96.36.199]
|Feedback||You are visitor number 1.|