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;
This page is posted |
http://mindprod.com/jgloss/enumsetlookup.html | |
Optional Replicator mirror
|
J:\mindprod\jgloss\enumsetlookup.html | |
Please read the feedback from other visitors,
or send your own feedback about the site. Contact Roedy. Please feel free to link to this page without explicit permission. | ||
Canadian
Mind
Products
IP:[65.110.21.43] Your face IP:[3.233.242.216] |
| |
Feedback |
You are visitor number | |