List of usage examples for java.util TreeSet subSet
public SortedSet<E> subSet(E fromElement, E toElement)
From source file:Main.java
public static void main(String args[]) throws Exception { String elements[] = { "A", "C", "D", "G", "F" }; TreeSet<String> set = new TreeSet<String>(Arrays.asList(elements)); System.out.println(set.subSet("C", "F")); }
From source file:Main.java
public static void main(String[] args) { TreeSet<String> tSet = new TreeSet<String>(); tSet.add("1"); tSet.add("2"); tSet.add("3"); tSet.add("4"); tSet.add("5"); SortedSet sortedSet = tSet.subSet("2", "5"); System.out.println("SortedSet Contains : " + sortedSet); }
From source file:MainClass.java
public static void main(String args[]) throws Exception { String elements[] = { "A", "C", "D", "G", "F" }; TreeSet set = new TreeSet(Arrays.asList(elements)); System.out.println(set.tailSet("C")); System.out.println(set.headSet("C")); System.out.println(set.headSet("C\0")); System.out.println(set.tailSet("C\0")); System.out.println(set.subSet("C", "F\0")); System.out.println(set.subSet("C", "C\0")); System.out.println(set.subSet("C", "C")); }
From source file:Main.java
public static void main(String[] args) { TreeSet<Integer> treeadd = new TreeSet<Integer>(); treeadd.add(1);//from ww w .j a v a 2 s . c o m treeadd.add(2); treeadd.add(3); treeadd.add(4); treeadd.add(5); treeadd.add(6); treeadd.add(7); treeadd.add(8); TreeSet<Integer> treesubset = (TreeSet<Integer>) treeadd.subSet(3, 7); Iterator<Integer> iterator = treesubset.iterator(); while (iterator.hasNext()) { System.out.println(iterator.next()); } }
From source file:com.repeatability.pdf.PDFTextStripper.java
/** * This will process a TextPosition object and add the text to the list of characters on a page. It takes care of * overlapping text.//from w w w . ja va2s . c o m * * @param text The text to process. */ @Override protected void processTextPosition(TextPosition text) { boolean showCharacter = true; if (suppressDuplicateOverlappingText) { showCharacter = false; String textCharacter = text.getUnicode(); float textX = text.getX(); float textY = text.getY(); TreeMap<Float, TreeSet<Float>> sameTextCharacters = characterListMapping.get(textCharacter); if (sameTextCharacters == null) { sameTextCharacters = new TreeMap<Float, TreeSet<Float>>(); characterListMapping.put(textCharacter, sameTextCharacters); } // RDD - Here we compute the value that represents the end of the rendered // text. This value is used to determine whether subsequent text rendered // on the same line overwrites the current text. // // We subtract any positive padding to handle cases where extreme amounts // of padding are applied, then backed off (not sure why this is done, but there // are cases where the padding is on the order of 10x the character width, and // the TJ just backs up to compensate after each character). Also, we subtract // an amount to allow for kerning (a percentage of the width of the last // character). boolean suppressCharacter = false; float tolerance = text.getWidth() / textCharacter.length() / 3.0f; SortedMap<Float, TreeSet<Float>> xMatches = sameTextCharacters.subMap(textX - tolerance, textX + tolerance); for (TreeSet<Float> xMatch : xMatches.values()) { SortedSet<Float> yMatches = xMatch.subSet(textY - tolerance, textY + tolerance); if (!yMatches.isEmpty()) { suppressCharacter = true; break; } } if (!suppressCharacter) { TreeSet<Float> ySet = sameTextCharacters.get(textX); if (ySet == null) { ySet = new TreeSet<Float>(); sameTextCharacters.put(textX, ySet); } ySet.add(textY); showCharacter = true; } } if (showCharacter) { // if we are showing the character then we need to determine which article it belongs to int foundArticleDivisionIndex = -1; int notFoundButFirstLeftAndAboveArticleDivisionIndex = -1; int notFoundButFirstLeftArticleDivisionIndex = -1; int notFoundButFirstAboveArticleDivisionIndex = -1; float x = text.getX(); float y = text.getY(); if (shouldSeparateByBeads) { for (int i = 0; i < beadRectangles.size() && foundArticleDivisionIndex == -1; i++) { PDRectangle rect = beadRectangles.get(i); if (rect != null) { if (rect.contains(x, y)) { foundArticleDivisionIndex = i * 2 + 1; } else if ((x < rect.getLowerLeftX() || y < rect.getUpperRightY()) && notFoundButFirstLeftAndAboveArticleDivisionIndex == -1) { notFoundButFirstLeftAndAboveArticleDivisionIndex = i * 2; } else if (x < rect.getLowerLeftX() && notFoundButFirstLeftArticleDivisionIndex == -1) { notFoundButFirstLeftArticleDivisionIndex = i * 2; } else if (y < rect.getUpperRightY() && notFoundButFirstAboveArticleDivisionIndex == -1) { notFoundButFirstAboveArticleDivisionIndex = i * 2; } } else { foundArticleDivisionIndex = 0; } } } else { foundArticleDivisionIndex = 0; } int articleDivisionIndex; if (foundArticleDivisionIndex != -1) { articleDivisionIndex = foundArticleDivisionIndex; } else if (notFoundButFirstLeftAndAboveArticleDivisionIndex != -1) { articleDivisionIndex = notFoundButFirstLeftAndAboveArticleDivisionIndex; } else if (notFoundButFirstLeftArticleDivisionIndex != -1) { articleDivisionIndex = notFoundButFirstLeftArticleDivisionIndex; } else if (notFoundButFirstAboveArticleDivisionIndex != -1) { articleDivisionIndex = notFoundButFirstAboveArticleDivisionIndex; } else { articleDivisionIndex = charactersByArticle.size() - 1; } List<TextPosition> textList = charactersByArticle.get(articleDivisionIndex); // In the wild, some PDF encoded documents put diacritics (accents on // top of characters) into a separate Tj element. When displaying them // graphically, the two chunks get overlayed. With text output though, // we need to do the overlay. This code recombines the diacritic with // its associated character if the two are consecutive. if (textList.isEmpty()) { textList.add(text); } else { // test if we overlap the previous entry. // Note that we are making an assumption that we need to only look back // one TextPosition to find what we are overlapping. // This may not always be true. */ TextPosition previousTextPosition = textList.get(textList.size() - 1); if (text.isDiacritic() && previousTextPosition.contains(text)) { previousTextPosition.mergeDiacritic(text); } // If the previous TextPosition was the diacritic, merge it into this // one and remove it from the list. else if (previousTextPosition.isDiacritic() && text.contains(previousTextPosition)) { text.mergeDiacritic(previousTextPosition); textList.remove(textList.size() - 1); textList.add(text); } else { textList.add(text); } } } }
From source file:net.spfbl.core.User.java
public static void sendHoldingWarning() { for (User user : getSet()) { if (user.isUsingHeader()) { HashSet<String> keySet = new HashSet<String>(); TreeSet<Long> timeSet = user.getTimeSet(); long deferTimeYELLOW = Core.getDeferTimeYELLOW() * 60000L; long deferTimeRED = Core.getDeferTimeRED() * 60000L; long deferTimeHOLD = Core.getDeferTimeHOLD() * 60000L; long timeEnd = System.currentTimeMillis() - deferTimeYELLOW; long timeMiddle = System.currentTimeMillis() - deferTimeRED; long timeBegin = System.currentTimeMillis() - deferTimeHOLD; int count = 0; for (long time : timeSet.subSet(timeBegin, timeEnd)) { Query query = user.getQuery(time); if (query != null && query.hasSubject() && query.isNotAdvisedLocal() && query.isResult("HOLD") && keySet.add(query.getComplainKey())) { if (query.isHoldingFull()) { if (query.adviseSenderHOLD(time)) { CHANGED = true; Server.logDebug("retention warning sent by e-mail."); } else if (!query.isSenderAdvised() && !query.isPass() && query.adviseAdminHOLD(time)) { CHANGED = true; Server.logDebug("retention warning sent by e-mail."); } else if (!query.isSenderAdvised() && query.adviseRecipientHOLD(time)) { CHANGED = true; Server.logDebug("retention warning sent by e-mail."); } else if (time < timeMiddle && !query.isPass() && query.adviseAdminHOLD(time)) { CHANGED = true; Server.logDebug("retention warning sent by e-mail."); } else if (time < timeMiddle && query.adviseRecipientHOLD(time)) { CHANGED = true; Server.logDebug("retention warning sent by e-mail."); } else if (time < timeMiddle && query.adviseAdminHOLD(time)) { CHANGED = true; Server.logDebug("retention warning sent by e-mail."); }//from ww w.java2s .c o m } if (++count > 1024) { break; } } } } } }
From source file:net.spfbl.core.User.java
public static void sendSuspectWarning() { for (User user : getSet()) { if (user.isUsingHeader()) { HashSet<String> keySet = new HashSet<String>(); TreeSet<Long> timeSet = user.getTimeSet(); long deferTimeYELLOW = Core.getDeferTimeYELLOW() * 60000L; long deferTimeRED = Core.getDeferTimeRED() * 60000L; long timeEnd = System.currentTimeMillis() - deferTimeYELLOW; long timeBegin = System.currentTimeMillis() - deferTimeRED; int count = 0; for (long time : timeSet.subSet(timeBegin, timeEnd)) { Query query = user.getQuery(time); if (query != null && query.hasSubject() && query.hasMessageID() && query.isNotAdvised() && query.isResult("ACCEPT") && keySet.add(query.getComplainKey()) && query.isSuspectFull()) { if (query.adviseRecipientSPAM(time)) { CHANGED = true;/*from www. j a va2s .c om*/ Server.logDebug("suspect warning sent by e-mail."); } if (++count > 1024) { break; } } } } } }