ImageVerifierCode 换一换
格式:PPTX , 页数:43 ,大小:455.79KB ,
资源ID:1393402      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/1393402.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(Guava实用培训教程.pptx)为本站会员(b****1)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

Guava实用培训教程.pptx

1、Guava快速进阶,主讲人:陈雄华,目录,Guava概述Strings基础类型CollectionsFunctions and PredicatesIO处理其它,Guava是什么?,Google开源核心类库!,快乐编程,快速编程!,高效稳定,充分测试!,如何获取Guava?,com.google.guava guava 12.0,http:/,项目网址:,Maven:,目录,Guava概述Strings基础类型CollectionsFunctions and PredicatesIO处理其它,Joiner:合并字符串,Test public void testJoiner()String st

2、r1=Joiner.on(;).skipNulls().join(Arrays.asList(a,b,null,c);assertEquals(str1,a;b;c);String str2=Joiner.on(,).join(Arrays.asList(1,5,7);assertEquals(str2,1,5,7);,Splitter:OOP,/ApacheStringUtils.Stringtokens1=StringUtils.split(one,two,three,);/GoogleGuavasplitter.Iteratabletokens2=Splitter.on(,),split

3、(one,two,three);,很明显,google提供的方法更加的面向对象一点,因为它要先创建一个Splitter对象,然后使用它来分割字符串,而apache的方法则有点函数式编程的味道,它的方法都是静态的。,和apache commons StringUtils使用方法比拼,Splitter:性能,Test public void testPerformance()final String numberList=One,Two,Three,Four,Five,Six,Seven,Eight,Nine,Ten;long start=System.currentTimeMillis();fo

4、r(int i=0;i1000000;i+)StringUtils.split(numberList,);System.out.println(System.currentTimeMillis()-start);start=System.currentTimeMillis();for(int i=0;i1000000;i+)Splitter.on(,).split(numberList);System.out.println(System.currentTimeMillis()-start);start=System.currentTimeMillis();Splitter splitter=

5、Splitter.on(,);for(int i=0;i1000000;i+)splitter.split(numberList);System.out.println(System.currentTimeMillis()-start);,和apache commons StringUtils性能比拼,apache commons:406guava(未复用Splitter):36guava(复用Spliter):10,Splitter:灵活,Test public void testSplitter()Iterable arrs=Splitter.on(,).trimResults()头尾去除

6、.omitEmptyStrings()忽略空字符串.split(,a,b,);String str2=Joiner.on(;).join(arrs);assertEquals(str2,a;b);,CharMatcher:字符串匹配器,CharMatcher包括两个功能,其一是字符串匹配,其二是字符串处理,它使匹配和处理解耦了,使字符串处理的灵活性大大增强!,Test public void testCharMatcher()assertEquals(CharMatcher.DIGIT.retainFrom(some text 89983 and more),89983);assertEqua

7、ls(CharMatcher.DIGIT.removeFrom(some text 89983 and more),some text and more);assertEquals(CharMatcher.anyOf(abcxy).removeFrom(abcdefgxyz),defgz);/匹配条件复合运算 String str1=CharMatcher.inRange(a,f).and(CharMatcher.isNot(c).and(CharMatcher.isNot(e).or(CharMatcher.is(z).replaceFrom(abyczef,*);assertEquals(

8、str1,*yc*e*);,目录,Guava概述Strings基础类型CollectionsFunctions and PredicatesIO处理其它,来看实例,Test public void testMe()List intArr=Ints.asList(1,3,4,6);String intStr=Ints.join(,1,2,3,4);int concat=Ints.concat(new int1,3,new int4,6);int max=Ints.max(2,3,4,7);boolean contains=Ints.contains(new int1,3,4,5,6);int i

9、nts=Ints.toArray(Lists.newArrayList(1,2,3,5);,基础类型通用方法,对应工具类,目录,Guava概述Strings基础类型CollectionsFunctions and PredicatesIO处理其它,泛型实例化:List,Test public void testListGeneric()List list1=new ArrayList();/原始的方式 list1.add(a);list1.add(b);List list2=Lists.newArrayList();list2.add(a);list2.add(b);List list3=Li

10、sts.newArrayList(a,b);List list4=Lists.asList(a,b,new Stringc,d);,泛型实例化:Set,Test public void testListGeneric()List list1=new ArrayList();/原始的方式 list1.add(a);list1.add(b);List list2=Lists.newArrayList();list2.add(a);list2.add(b);List list3=Lists.newArrayList(a,b);List list4=Lists.asList(a,b,new Strin

11、gc,d);,一对多之Multimap之前,MapmyClassListMaptest2=newHashMap(),voidputMyObject(Stringkey,Objectvalue)ListmyClassList=myClassListMap.get(key);if(myClassList=null)myClassList=newArrayList();myClassListMap.put(key,myClassList);myClassList.add(value);,自己实现太麻烦,你需要检查key是否存在,否则创建一个,最后代码成为这个样子:,比较痛苦,如果你希望检查List中

12、的对象是否存在,删除一个对象,或者遍历整个数据结构,那么需要更多的代码。,Multimap来了,MultimapmyMultimap=ArrayListMultimap.create();,Test public void testMultimap()MultimapmyMultimap=ArrayListMultimap.create();myMultimap.put(Fruits,Bannana);myMultimap.put(Fruits,Apple);myMultimap.put(Fruits,Pear);myMultimap.put(Vegetables,Carrot);int si

13、ze=myMultimap.size();System.out.println(size);/4 Collection fruits=myMultimap.get(Fruits);System.out.println(fruits);/Bannana,Apple myMultimap.remove(Fruits,Pear);System.out.println(myMultimap.get(Fruits);/Bannana,Apple myMultimap.removeAll(Fruits);System.out.println(myMultimap.get(Fruits);/(EmptyCo

14、llection!),这里需要注意,所有的guava的集合都有create()方法,这个好处就是比较简单,你不用重复泛型信息了。,Multimap更多,这里有一点你可能会疑惑,就是为何get方法返回的是一个collection而不是list,这是因为前者会更加有用。如果你需要基于multimap直接操作list或者set,那么可以使用在定义类型的时候使用子类名称:ListMultimap,SetMultimap和SortedSetMultimap。例如:,ListMutlimap myMutlimap=ArrayListMultimap.create();List myValues=myMut

15、limap.get(myKey);/Returns a List,not a Collection.,BiMaps,一个普通的map是一个key/value的集合,你可以使用key来查询,但不能用value查询key,但是BiMaps则都可以。,BiMap britishToAmerican=HashBiMap.create();/Initialise and use just like a normal map britishToAmerican.put(aubergine,egglant);britishToAmerican.put(courgette,zucchini);britishT

16、oAmerican.put(jam,jelly);System.out.println(britishToAmerican.get(aubergine);/eggplant BiMap americanToBritish=britishToAmerican.inverse();System.out.println(americanToBritish.get(eggplant);/aubergine System.out.println(americanToBritish.get(zucchini);/courgette,强制唯一性:首先,BiMap强制其value的唯一性,如果发现违规则会抛出,可用forcePut(key,value)覆盖已有的条目;inverse方法:返回BiMap的视图,如果对视图对象操作将影响原BiMap对象;,Multiset,Multiset是什么?,顾名思义,Multiset和Set的区别就是可以保存多个相同的对象,它和List有什么区别?,在JDK中,List和Set有一个基本的区别,就是List可以包含多个相同对象,且是有顺序的,而Set不能有重复,且

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1