diff --git a/src/main/java/org/sablecc/sablecc/CharSet.java b/src/main/java/org/sablecc/sablecc/CharSet.java
index 027140dd495b310db1a383f3ad9bd4a8b73e3f82..c98b5669df4e2c7dd53a48e74b5677757189aa54 100644
--- a/src/main/java/org/sablecc/sablecc/CharSet.java
+++ b/src/main/java/org/sablecc/sablecc/CharSet.java
@@ -8,12 +8,11 @@
 package org.sablecc.sablecc;
 
 import java.util.*;
-import java.util.Enumeration;
 import java.util.Vector;
 
 public class CharSet implements Cloneable
 {
-  private final Vector intervals = new Vector(0);
+  private final Vector<Interval> intervals = new Vector<>(0);
 
   public CharSet(char c)
   {
@@ -25,11 +24,11 @@ public class CharSet implements Cloneable
     intervals.addElement(new Interval(start, end));
   }
 
-  private CharSet(Vector intervals)
+  private CharSet(Collection<Interval> intervals)
   {
-    for(Enumeration e = intervals.elements(); e.hasMoreElements();)
+    for(Interval i : intervals)
     {
-      this.intervals.addElement(((Interval) e.nextElement()).clone());
+      this.intervals.addElement(i.clone());
     }
   }
 
@@ -50,7 +49,7 @@ public class CharSet implements Cloneable
     {
       int middle = (high + low) >>> 1;
 
-      interval2 = (Interval) intervals.elementAt(middle);
+      interval2 = intervals.elementAt(middle);
 
       if(interval1.start <= interval2.end)
       {
@@ -82,7 +81,7 @@ public class CharSet implements Cloneable
   {
     for(int i = 0; i < intervals.size(); i++)
     {
-      Interval iv = (Interval) intervals.elementAt(i);
+      Interval iv = intervals.elementAt(i);
 
       if(iv.start > interval.start)
       {
@@ -102,9 +101,9 @@ public class CharSet implements Cloneable
     Interval largeInterval;
     Interval overlap;
 
-    for(Enumeration e = chars.intervals.elements(); e.hasMoreElements();)
+    for(Interval i : chars.intervals)
     {
-      interval = ((Interval) e.nextElement()).clone();
+      interval = i.clone();
 
       do
       {
@@ -135,9 +134,9 @@ public class CharSet implements Cloneable
     Interval interval;
     Interval overlap;
 
-    for(Enumeration e = chars.intervals.elements(); e.hasMoreElements();)
+    for(Interval i : chars.intervals)
     {
-      interval = ((Interval) e.nextElement()).clone();
+      interval = i.clone();
 
       do
       {
@@ -166,9 +165,9 @@ public class CharSet implements Cloneable
   {
     StringBuffer result = new StringBuffer();
 
-    for(Enumeration e = intervals.elements(); e.hasMoreElements();)
+    for(Interval i : intervals)
     {
-      result.append("[" + e.nextElement() + "] ");
+      result.append("[" + i + "] ");
     }
 
     return "" + result;