EnumSet range

import java.util.EnumSet;

// jamesprogram.java
class jamesprogram {

	public static void main (String[] args){
		// enhanced for loop
		// this loops through the enumeration
		// contants in the array cat.values() and
		// assign them to people
		for (cat people: cat.values()){
			System.out.printf("%s\t%s\t%s\n", people, people.getDesc(), people.getYear());
		System.out.println("\n.. and now to a range of constants\n");
                // loops through a new array created by the range method of the EnumSet class
		for (cat people: EnumSet.range(cat.emma, cat.bernard)){
			System.out.printf("%s\t%s\t%s\n", people, people.getDesc(), people.getYear());
// the enum allows us to use the class in
// a specific way
public enum cat {
	// declare constants of the enum type
	// i.e. variables that never change
	// final, we don't want this changed
	// these two declared variables represent
	// the two arguments above
	private final String desc;
	private final String year;
	//now have a enumeration constructor
	cat(String description, String theirYear){
		desc = description;
		year = theirYear;
	public String getDesc(){
		return desc;
	public String getYear(){
		return year;


emma xml 40
george php 100
bernard excel 76
matthew perl 19

.. and now to a range of constants

emma xml 40
george php 100
bernard excel 76

As we can see

EnumSet.range(cat.emma, cat.bernard)

creates a new array and is the range of values (inclusive) between emma and bernard.

Leave a Reply