`

Guava学习笔记

    博客分类:
  • java
 
阅读更多

1、pom.xml文件  

<dependency>
   <groupId>com.google.guava</groupId>
   <artifactId>guava</artifactId>
   <version>18.0</version>
</dependency>

 

2、不可变List

 传统实现: 

List<String> list = new ArrayList<String>();
list.add("a");
list.add("b");
list.add("c");
List<String> readList = Collections.unmodifiableList(list);

 Guava实现:

List<String> immutableList = ImmutableList.of("a","b","c");

3、函数式编程之过滤器

List<String> list = Lists.newArrayList("moom", "son", "dad", "java", "refer");
//找出回文
Collection<String> palindromeList = Collections2.filter(list, new Predicate<String>() {
            @Override
            public boolean apply(String input) {
                return new StringBuffer(input).reverse().toString().equals(input);
            }
        });

 4、函数式编程之类型转换

//长整型转换成字符串
HashSet<Long> timeSet = Sets.newHashSet();
        timeSet.add(100000000000L);
        timeSet.add(999999999999999L);
        timeSet.add(20000000000L);

Collection<String> timeStrCol = Collections2.transform(timeSet, new Function<Long, String>() {
            @Override
            public String apply(Long input) {
                return new SimpleDateFormat("yyyy-MM-dd").format(input);
            }
        });

 5、函数式编程之组合式

        List<String> list = Lists.newArrayList("java", "china", "happiness");

	//字符串大于5时截断
        Function<String, String> f1 = new Function<String, String>() {
            @Override
            public String apply(String s) {
                return s.length() > 5 ? s.substring(0, 5) : s;
            }
        };
//字符转换成大写
Function<String, String> f2 = new Function<String, String>() {
            @Override
            public String apply(String s) {
                return s.toUpperCase();
            }
        };

        Function<String, String> compose = Functions.compose(f1, f2);
        Collection<String> transform = Collections2.transform(list, compose);

 6、集合操作:交集、差集、并集

        Set<String> firstSet = Sets.newHashSet("a", "b", "c", "d");
        Set<String> secondSet = Sets.newHashSet("c", "d", "e", "f");
        //交集,返回[c,d]
        Sets.SetView<String> intersection = Sets.intersection(firstSet, secondSet);
        //差集,返回[a,b]
        Sets.SetView<String> difference = Sets.difference(firstSet, secondSet);
        //并集,返回[a,b,c,d,e,f]
        Sets.SetView<String> union = Sets.union(firstSet, secondSet);

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics