«^»
9.4 The classes EnumSet and EnumMap

You can use the new class java.util.EnumSet to create a set of enums and the new class java.util.EnumMap to create a map that uses enums as keys.

Here is some code illustrating two uses of EnumSet:

0472:       Day tToday = Day.Wednesday;
0473:       Day[] tDayValues = Day.values();
0474:       for (int tDayNumber = Day.Tuesday.ordinal();
0475:                tDayNumber<=Day.Thursday.ordinal(); tDayNumber++)
0476:       {
0477:          Day tDay = tDayValues[tDayNumber];
0478:          System.out.println(tDay + " " + tDay.compareTo(tToday));
0479:       }
0480:       for (Day tDay : EnumSet.range(Day.Tuesday, Day.Thursday))
0481:       {
0482:          System.out.println(tDay + " " + tDay.compareTo(tToday));
0483:       }
0484:       for (Day tDay : Day.values())
0485:       {
0486:          if (tDay.toString().length()==6)
0487:          {
0488:             System.out.println(tDay + " is a 6 letter day");
0489:          }
0490:       }
0491:       for (Day tDay : Day.values())
0492:       {
0493:          if (EnumSet.of(Day.Sunday, Day.Monday, Day.Friday).contains(tDay))
0494:          {
0495:             System.out.println(tDay + " is a 6 letter day");
0496:          }
0497:       }

The above code produces the output:

0511: Tuesday -1
0512: Wednesday 0
0513: Thursday 1
0514: Tuesday -1
0515: Wednesday 0
0516: Thursday 1
0517: Sunday is a 6 letter day
0518: Monday is a 6 letter day
0519: Friday is a 6 letter day
0520: Sunday is a 6 letter day
0521: Monday is a 6 letter day
0522: Friday is a 6 letter day