java項目中使用guava的工具包的心得


原文:http://www.   zuidaima.com/blog/3182745969511424.htm

 

   以前只是聽過這個工具包,但是真正用的話還是在D75需求中。我要實現把前台傳入的list集合用分號分割拼接一個字符串存入數據庫,

開始的時候我用代碼邏輯如下:

StringBuffer interfaceList=new StringBuffer();

//判斷前台綁定中的集合是否為空

if(interfaces!=null)

{

     for(String str:interfaces){

          interfaceList.append(str).append(";");

    }

//去掉最后一個分號

    tpc.setInterfaces(interfacesStr.subStrting(0,interfaceList.length()-1);

}

感覺這里使用了stringbuffer就沒問題了吧,然后hery對我說代碼還可以壓縮,我就看了下apache的StringUtils這個類和google的guava包下

的Joiner這個類。我才發現這樣的工具包真的好強大,封裝了好多功能,學習是永無止境的。上面的代碼只需要寫一句就替代了:

String interfacesStr=StringUtils.join(interfaces.iterator(), ';');
或者String interfacesStr= Joiner.on(";").join(interfaces.iterator());

有時候我們這樣寫:

Person person1=new Person("jack",20);

Person person2=new Person("jack",20);

Person person2=new Person("jack",20);

//會去這樣存入list集合:

List<Person> personList=new ArrayList<Person>();

personList.add(person1);

personList.add(person2);

personList.add(person3);

在guava中可以這樣:List<Person> list = Lists.newArrayList(person1, person2, person3);當然也可以這樣Arrays.asList(person1, person2, person3);

在比較對象大小的時候都知道有兩種方式:

1.實體類實現Conparable接口;2.在Collections.sort()實現Comparator接口

在guava中的對象比較,實現的Comparator可以這樣寫:

new Comparator<Person>() {

            @Override

            public int compare(Person o1, Person o2) {

                return ComparisonChain.start().compare(o1.getName(), o2.getName()).compare(o1.getAge(), o2.getAge())

                        .result();

            }

}

還有很多功能還要自己去摸索學習,此處省略.............


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM