diff --git a/.gitignore b/.gitignore index 65bb389..932f8d4 100644 --- a/.gitignore +++ b/.gitignore @@ -17,3 +17,4 @@ releases/ tests/images/ tests/images-expected/ target/ +classes/ diff --git a/src/java/org/stathissideris/ascii2image/text/CellSet.java b/src/java/org/stathissideris/ascii2image/text/CellSet.java index 0a40b8c..580bd43 100644 --- a/src/java/org/stathissideris/ascii2image/text/CellSet.java +++ b/src/java/org/stathissideris/ascii2image/text/CellSet.java @@ -20,11 +20,10 @@ package org.stathissideris.ascii2image.text; import java.util.ArrayList; -import java.util.HashMap; -import java.util.HashSet; -import java.util.Hashtable; +import java.util.Comparator; import java.util.Iterator; import java.util.Set; +import java.util.TreeSet; /** * @@ -41,8 +40,20 @@ public class CellSet implements Iterable { public static final int TYPE_HAS_CLOSED_AREA = 3; public static final int TYPE_UNDETERMINED = 4; - Set internalSet = new HashSet(); - + private static final Comparator CELL_COMPARATOR = new Comparator() { + @Override + public int compare(TextGrid.Cell o1, TextGrid.Cell o2) { + int yResult = Integer.compare(o1.y, o2.y); + if (yResult == 0) { + return Integer.compare(o1.x, o2.x); + } else { + return yResult; + } + } + }; + + Set internalSet = new TreeSet<>(CELL_COMPARATOR); + private int type = TYPE_UNDETERMINED; private boolean typeIsValid = false;