zoukankan      html  css  js  c++  java
  • guava的一些用法

      1 package guavaTest;
      2 
      3 import com.google.common.base.CharMatcher;
      4 import com.google.common.base.Joiner;
      5 import com.google.common.base.Splitter;
      6 import com.google.common.collect.ArrayListMultimap;
      7 import com.google.common.collect.Lists;
      8 import com.google.common.primitives.Ints;
      9 import com.google.common.util.concurrent.*;
     10 import org.checkerframework.checker.nullness.compatqual.NullableDecl;
     11 
     12 import java.util.List;
     13 import java.util.Random;
     14 import java.util.concurrent.ExecutorService;
     15 import java.util.concurrent.Executors;
     16 
     17 /**
     18  * Google guava 的使用
     19  */
     20 public class GuavaTest {
     21 
     22     //连接器(对于Joiner,常用的方法是   跳过NULL元素:skipNulls()  /  对于NULL元素使用其他替代:useForNull(String))
     23     // private static final Joiner joiner = Joiner.on(",").skipNulls();
     24     private static final Joiner joiner = Joiner.on(",").useForNull("我是空字符串");
     25 
     26     //分割器(对于Splitter,常用的方法是:trimResults()/omitEmptyStrings()。注意拆分的方式,有字符串,还有正则,还有固定长度分割(太贴心了!))
     27     private static final Splitter splitter = Splitter.on(",").trimResults().omitEmptyStrings();
     28 
     29 
     30     public static void main(String[] args) {
     31 
     32         String join = joiner.join(Lists.newArrayList("a", null, "b"));
     33         System.out.println("join:" + join);
     34 
     35         // a,  ,b,,
     36         for (String tmp : splitter.split("bb,lll,kkk,,,,,,,,")) {
     37             System.out.println("|" + tmp + "|");
     38         }
     39 
     40         List<Integer> integers = Ints.asList(1, 2, 3, 4, 5, 6);
     41 
     42         System.out.println(Ints.join(",", 1, 2, 3, 4));
     43 
     44         //原生数组类型快速合并
     45         int[] concat = Ints.concat(new int[]{1, 2, 3}, new int[]{7, 8, 9});
     46         System.out.println(concat.length);
     47 
     48         //求最大、最小
     49         System.out.println(Ints.max(concat) + "" + Ints.min(concat));
     50 
     51         //是否包含,不用循环查找了
     52         System.out.println(Ints.contains(concat, 9));
     53 
     54         //集合到数组的转换
     55         System.out.println(Ints.toArray(integers));
     56 
     57         //Map<String,List<String>>
     58         ArrayListMultimap<String, String> listMultimap = ArrayListMultimap.create();
     59 
     60         listMultimap.put("张晓明", "数学");
     61         listMultimap.put("张晓明", "语文");
     62         listMultimap.put("张晓明", "物理");
     63         listMultimap.put("王小二", "英语");
     64 
     65         test();
     66 
     67     }
     68 
     69 
     70     public static void test() {
     71 
     72         ExecutorService service = Executors.newFixedThreadPool(10);
     73         ListeningExecutorService listeningExecutorService = MoreExecutors.listeningDecorator(service);
     74         ListenableFuture<Integer> listenableFuture = listeningExecutorService.submit(() -> {
     75 
     76             if (new Random().nextInt(3) == 2) {
     77                 throw new NullPointerException();
     78             }
     79             return 1;
     80 
     81         });
     82 
     83         FutureCallback<Integer> futureCallback = new FutureCallback<Integer>() {
     84 
     85             @Override
     86             public void onSuccess(@NullableDecl Integer result) {
     87                 System.out.println("---------" + result);
     88             }
     89 
     90             @Override
     91             public void onFailure(Throwable t) {
     92                 System.out.println("------------" + t.getMessage());
     93             }
     94 
     95 
     96         };
     97 
     98         Futures.addCallback(listenableFuture, futureCallback);
     99 
    100 
    101     }
    102 
    103 }
  • 相关阅读:
    Android Opencore OpenMAX学习(2)数据格式及OMX输入缓冲细节
    Android Opencore OpenMAX学习(3)OpenMax 调用顺序
    Opencore and OMX core/component interaction (一)
    Opencore and OMX core/component interaction (二)
    Opencore and OMX core/component interaction (一)
    Opencore and OMX core/component interaction (二)
    Android Opencore OpenMAX学习(3)OpenMax 调用顺序
    OpenMax系统的结构(2)
    OpenMax系统的结构(2)
    Android Opencore OpenMAX学习(2)数据格式及OMX输入缓冲细节
  • 原文地址:https://www.cnblogs.com/java-le/p/11383776.html
Copyright © 2011-2022 走看看