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: |
http://mindprod.com/jgloss/enumsetlookup.html |
optional Replicator mirror
|
J:\mindprod\jgloss\enumsetlookup.html | |
![]() |
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 :
| |
| Blog | Canadian
Mind
Products
IP:[65.110.21.43] Your face IP:[50.16.108.167] |
|
| Feedback | You are visitor number 1. | |