// get min element private static void testGetMin() { Collection<String> collection = Lists.newArrayList("5", "1", "3", "8", "4"); OrderedIterable<String> orderedIterable = FastList.newListWith("5", "1", "3", "8", "4"); Iterable<String> iterable = collection; // get min element String jdk = Collections.min(collection); // using JDK String gs = orderedIterable.min(); // using GS String guava = Ordering.natural().min(iterable); // using guava System.out.println("min = " + jdk + ":" + guava + ":" + gs); // print min = 1:1:1 }
// get a element, if collection has only one element private static void testGetSingle() { Collection<String> collection = Lists.newArrayList("a3"); OrderedIterable<String> orderedIterable = FastList.newListWith("a3"); Iterable<String> iterable = collection; // get a element, if collection has only one element String guava = Iterables.getOnlyElement(iterable); // using guava String jdk = collection.iterator().next(); // using JDK String apache = CollectionUtils.extractSingleton(collection); // using Apache assert (orderedIterable.size() != 1); // using GS String gs = orderedIterable.getFirst(); System.out.println( "single = " + jdk + ":" + guava + ":" + apache + ":" + gs); // print single = a3:a3:a3:a3 }
// get last element private static void testGetLast() { Collection<String> collection = Lists.newArrayList("a1", "a2", "a3", "a8"); OrderedIterable<String> orderedIterable = FastList.newListWith("a1", "a2", "a3", "a8"); Iterable<String> iterable = collection; // get last element Iterator<String> iterator = collection.iterator(); // using JDK String jdk = "1"; while (iterator.hasNext()) { jdk = iterator.next(); } String guava = Iterables.getLast(iterable, "1"); // using guava String apache = CollectionUtils.get(collection, collection.size() - 1); // using Apache String gs = orderedIterable.getLast(); // using GS String stream = collection.stream().skip(collection.size() - 1).findFirst().orElse("1"); // using Stream API System.out.println( "last = " + jdk + ":" + guava + ":" + apache + ":" + gs + ":" + stream); // print last = a8:a8:a8:a8:a8 }