Java Code Examples for com.google.common.collect.Iterables#frequency()

The following examples show how to use com.google.common.collect.Iterables#frequency() . These examples are extracted from open source projects. You can vote up the ones you like or vote down the ones you don't like, and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example 1
/**
 * Frequency of objects
 */
@Test
public void frequency_of_object_in_iterable () {
	
	String jingleChorus = "Oh, jingle bells, jingle bells "
			+ "Jingle all the way "
			+ "Oh, what fun it is to ride "
			+ "In a one horse open sleigh "
			+ "Jingle bells, jingle bells "
			+ "Jingle all the way "
			+ "Oh, what fun it is to ride "
			+ "In a one horse open sleigh";
	
	List<String> words = Splitter.on(CharMatcher.anyOf(" ."))
			.trimResults(CharMatcher.is('.'))
			.omitEmptyStrings()
			.splitToList(jingleChorus.toLowerCase());
	
	int numberOfOccurences = Iterables.frequency(words, "jingle");

	assertEquals(6, numberOfOccurences);
}
 
Example 2
@ExpectWarning(value="GC", num=5)
public static void testIterables(Iterable<String> i, Collection<Integer> c) {
    Iterables.contains(i, 1);
    Iterables.removeAll(i, c);
    Iterables.retainAll(i, c);
    Iterables.elementsEqual(i, c);
    Iterables.frequency(i, 1);
}
 
Example 3
@NoWarning("GC")
public static void testIterablesOK(Iterable<String> i, Collection<String> c) {
    Iterables.contains(i, "x");
    Iterables.removeAll(i, c);
    Iterables.retainAll(i, c);
    Iterables.elementsEqual(i, c);
    Iterables.frequency(i, "x");
}
 
Example 4
private static void testCount() {
    Collection<String> collection = Lists.newArrayList("a1", "a2", "a3", "a1");
    Iterable<String> iterable = collection;
    MutableCollection<String> collectionGS = FastList.newListWith("a1", "a2", "a3", "a1");

    // Get frequency element in collection
    int i1 = Iterables.frequency(iterable, "a1"); // using guava
    int i2 = Collections.frequency(collection, "a1"); // using JDK
    int i3 = CollectionUtils.cardinality("a1", iterable); // using Apache
    int i4 = collectionGS.count("a1"::equals);
    long i5 = collection.stream().filter("a1"::equals).count(); // using stream JDK

    System.out.println("count = " + i1 + ":" + i2 + ":" + i3 + ":" + i4 + ":" + i5); // print count = 2:2:2:2:2
}
 
Example 5
private static void testCount() {
    Collection<String> collection = Lists.newArrayList("a1", "a2", "a3", "a1");
    Iterable<String> iterable = collection;
    MutableCollection<String> collectionGS = FastList.newListWith("a1", "a2", "a3", "a1");

    // Вернуть количество вхождений объекта
    int i1 = Iterables.frequency(iterable, "a1"); // с помощью guava
    int i2 = Collections.frequency(collection, "a1"); // c помощью JDK
    int i3 = CollectionUtils.cardinality("a1", iterable); // c помощью Apache
    int i4 = collectionGS.count("a1"::equals);
    long i5 = collection.stream().filter("a1"::equals).count(); // c помощью stream JDK

    System.out.println("count = " + i1 + ":" + i2 + ":" + i3 + ":" + i4 + ":" + i5); // напечатает count = 2:2:2:2:2
}
 
Example 6
Source Project: buck   File: QueryNormalizer.java    License: Apache License 2.0 5 votes vote down vote up
/**
 * Format query using list substitution
 *
 * @param pattern Query that contains one or more %Ss
 * @param formatArgs Replacement strings for each %Ss occurrence, if there is just on replacement
 *     then all %sS instance would be replaced with it. If there is another mismatch between
 *     number of %Ss and replacement strings then the error is raised
 */
public static String normalizePattern(String pattern, List<String> formatArgs)
    throws QueryException {
  int numberOfSetsProvided =
      formatArgs.isEmpty() ? 0 : Iterables.frequency(formatArgs, SET_SEPARATOR) + 1;
  int numberOfSetsRequested = countMatches(pattern, SET_SUBSTITUTOR);

  // If they only provided one list as args, use that for every instance of `%Ss`
  if (numberOfSetsProvided == 1) {
    return pattern.replace(SET_SUBSTITUTOR, getSetRepresentation(formatArgs));
  }

  if (numberOfSetsProvided != numberOfSetsRequested) {
    String message =
        String.format(
            "Incorrect number of sets. Query uses `%s` %d times but %d sets were given",
            SET_SUBSTITUTOR, numberOfSetsRequested, numberOfSetsProvided);
    throw new QueryException(message);
  }

  List<String> unusedFormatArgs = formatArgs;
  String formattedQuery = pattern;
  while (formattedQuery.contains(SET_SUBSTITUTOR)) {
    int nextSeparatorIndex = unusedFormatArgs.indexOf(SET_SEPARATOR);
    List<String> currentSet =
        nextSeparatorIndex == -1
            ? unusedFormatArgs
            : unusedFormatArgs.subList(0, nextSeparatorIndex);
    // +1 so we don't include the separator in the next list
    unusedFormatArgs = unusedFormatArgs.subList(nextSeparatorIndex + 1, unusedFormatArgs.size());
    formattedQuery =
        formattedQuery.replaceFirst(SET_SUBSTITUTOR, getSetRepresentation(currentSet));
  }
  return formattedQuery;
}
 
Example 7
@Test
public void frequency_of_object_in_collection_guava () {

	int numberOfOccurences = Iterables.frequency(words, "me");
	
	assertEquals(2, numberOfOccurences);
}