TestGuava
来源:互联网 发布:汉王扫描软件下载 编辑:程序博客网 时间:2024/05/22 06:07
package facilitator.guava;import java.util.Collection;import java.util.Collections;import java.util.Comparator;import java.util.List;import java.util.Map;import org.junit.Test;import com.google.common.base.Function;import com.google.common.base.Predicate;import com.google.common.collect.Collections2;import com.google.common.collect.ComparisonChain;import com.google.common.collect.Lists;import com.google.common.collect.Maps;import com.google.common.collect.Ordering;public class TestGuava { private static class LengthLessThanPredicate implements Predicate<String> { private final int length; private LengthLessThanPredicate(final int length) { this.length = length; } public boolean apply(final String s) { return s.length() < length; } } public static Predicate<String> lengthLessThan(final int length) { return new LengthLessThanPredicate(length); } @Test public void testReplace() { //Map<String, Map<Long, List<String>>> map = new HashMap<String, Map<Long, List<String>>>(); //Map<String, Map<Long, List<String>>> map1 = Maps.newHashMap(); Map<String, Double> cnPrices = Maps.newHashMap(); cnPrices.put("1", 12.00); cnPrices.put("2", 52.00); cnPrices.put("3", 99.99); Map<String, Double> topMap = Maps.transformValues(cnPrices, new Function<Double, Double>() { Double cn2us = 6.0; @Override public Double apply(final Double arg0) { Double d = (Double) (arg0); return d * cn2us; } }); if (topMap == null || topMap.isEmpty()) { System.out.println("EMPTY"); } for (Double d : topMap.values()) { System.out.println(d); } /* Iterable<String> filtered = filter(names, or(or(equalTo("Aleksander"), equalTo("Jaran")), lengthLessThan(5)));*/ } @Test public void testSort() { Comparator<Person> byLastName = new Comparator<Person>() { @Override public int compare(Person o1, Person o2) { return o1.getLastName().compareTo(o2.getLastName()); } }; Comparator<Person> byFirstName = new Comparator<Person>() { @Override public int compare(Person o1, Person o2) { return o1.getFirstName().compareTo(o2.getFirstName()); } }; Person p1 = new Person(); p1.setFirstName("zhang"); p1.setLastName("zhenpeng"); Person p2 = new Person(); p2.setFirstName("bai"); p2.setLastName("xue"); Person p3 = new Person(); p3.setFirstName("zhang"); p3.setLastName("keqiang"); Person p4 = new Person(); p4.setFirstName("wang"); p4.setLastName("tao"); Person p5 = new Person(); p5.setFirstName("li"); p5.setLastName("wei"); List<Person> persons = Lists.newArrayList(p1, p2, p3, p4, p5, p2, p5, p1); List<Person> sortedCopy = Ordering.from(byFirstName).compound(byLastName) .sortedCopy(persons); for (Person p : sortedCopy) { System.out.println(p.getFirstName() + " " + p.getLastName()); } Collections.sort(persons, new Comparator<Person>() { @Override public int compare(Person o1, Person o2) { return ComparisonChain.start().compare(o1.getFirstName(), o2.getFirstName()) .compare(o1.getLastName(), o2.getLastName()).result(); } }); for (Person p : persons) { System.out.println(p.getFirstName() + " " + p.getLastName()); } Collection<Person> filterCollection = Collections2.filter(persons, new Predicate<Person>() { @Override public boolean apply(Person input) { return input.getFirstName() == "zhang"; } }); }}