`

Google-Guava工具类整理

    博客分类:
  • Java
 
阅读更多
更详细整理: http://blog.csdn.net/alecf/article/details/24775979
原文: http://my.oschina.net/shma1664/blog/596904
1、基本功能

1)字符串操作
package com.shma.guava.base;
import java.util.Map;
import org.junit.Test;
import com.google.common.base.Joiner;
import com.google.common.base.Splitter;
import com.google.common.base.Strings;
import com.google.common.collect.Maps;
/**
 * 字符串处理
 * @author admin
 *
 */
public class StringsTest {
 /**
  * 判断是否为空
  */
 @Test
 public void testIsNullOrEmpty() {
  String name = "";
  System.out.println(Strings.isNullOrEmpty(name)); //true
   
  String name2 = null;
  System.out.println(Strings.isNullOrEmpty(name2)); //true
   
  String name3 = "shma";
  System.out.println(Strings.isNullOrEmpty(name3)); //false
 }
 /**
  * 截取两个字符串的相同前缀
  */
 @Test
 public void testCommonPrefix() {
  // 两个字符串相同的前缀或者后缀
  String aString = "hi,a.shma.hello";
  String bString = "hi,b.jjq.hello";
  System.out.println(Strings.commonPrefix(aString, bString)); //hi,
 }
  
 /**
  * 截取两个字符串的相同后缀
  */
 @Test
 public void testCommonSuffix() {
  // 两个字符串相同的前缀或者后缀
  String aString = "hi,a.shma.hello";
  String bString = "hi,b.jjq.hello";
  System.out.println(Strings.commonSuffix(aString, bString)); //.hello
 }
  
 /**
  * 字符串补全
  */
 @Test
 public void testPad() {
  int minLength = 5;
   
  //末尾以0补全
  String padEndResult = Strings.padEnd("123", minLength, '0');
  System.out.println(padEndResult); //12300
   
  //开始补全
  String padStartResult = Strings.padStart("123", minLength, '0');
  System.out.println(padStartResult); //00123
   
 }
  
 /**
  * 拆分字符串
  */
 @Test
 public void testSplitter() {
  Iterable<String> iterable = Splitter.onPattern("[,,;]")
           .trimResults()
           .omitEmptyStrings()
           .split("马韶华,张琦,笑笑,,老李,类型 哈哈,非也; 宵夜 ");
  for(String item : iterable) {
   System.out.println(item);
  }
   
  //二次拆分
  String toSplitString = "a=1; b=2, c=3";
  Map<String, String> kvs = Splitter.onPattern("[;,]")
            .trimResults()
            .omitEmptyStrings()
            .withKeyValueSeparator("=")
            .split(toSplitString);
   
  System.out.println(kvs); //{a=1, b=2, c=3}
 }
  
 /**
  * 字符串合并
  */
 @Test
 public void testJoin() {
   
  String users = Joiner.on(",").join(new String[]{"张三", "李四", "王五"});
  System.out.println(users); //张三,李四,王五
   
  //将Map<String, String>合并
  Map<String, String> dataMap = Maps.newHashMap();
  dataMap.put("1001", "张三");
  dataMap.put("1002", "李四");
  dataMap.put("1003", "王五");
  dataMap.put("1004", "马六");
  String mapString = Joiner.on(",").withKeyValueSeparator("=").join(dataMap);
   
  System.out.println(mapString); // 1003=王五,1004=马六,1001=张三,1002=李四
   
   
 }
  
 /**
  * 重复输出次数
  */
 @Test
 public void testRepeat() {
  System.out.println(Strings.repeat("1234", 2)); // 12341234
 }
  
  
}




2)对象封装:Objects
package com.shma.guava2.base;
import org.junit.Test;
import com.google.common.base.Objects;
import com.google.common.collect.ComparisonChain;
/**
 * 复写Object中的方法实现
 * @author admin
 *
 */
public class ObjectsTest {
  
 /**
  * 比较大小
  */
 @Test
 public void compareTest() {
  Person person1 = new Person("jqq", 24);
  Person person2 = new Person("jqq", 28);
  Person person3 = new Person("shma", 24);
  Person person4 = new Person("shma", 21);
  Person person5 = new Person("shma", 21);
  System.out.println(person1.compareTo(person2));
  System.out.println(person1.compareTo(person3));
  System.out.println(person3.compareTo(person4));
  System.out.println(person5.compareTo(person4));
 }
  
 /**
  * 实现toString
  */
 @Test
 public void toStringTest() {
  System.out.println(Objects.toStringHelper(this).add("name", "shma").toString());
  System.out.println(Objects.toStringHelper(Person.class).add("name", "shma").add("age", 23).toString());
   
  Person person1 = new Person("jqq", 24);
  Person person2 = new Person("jqq", 24);
  System.out.println(person1);
  System.out.println(person2);
  System.out.println(person1.hashCode());
  System.out.println(person2.hashCode());
  System.out.println(person1.equals(person2));
 }
 /**
  * 判断equals
  */
 @Test
 public void equalsTest() {
  System.out.println(Objects.equal(null, "a")); //false
  System.out.println(Objects.equal("a", "a")); //true
  System.out.println(Objects.equal("", "")); //true
  System.out.println(Objects.equal("a", "")); //false
  System.out.println(Objects.equal(null, null)); //true
   
  System.out.println(Objects.equal(new Person("shma", 23), new Person("shma", 23))); //false
   
  Person person = new Person("jqq", 24);
  System.out.println(Objects.equal(person, person)); //true
 }
  
 /**
  * 计算hashcode
  * 
  */
 @Test
 public void hashCodeTest() {
  System.out.println(Objects.hashCode("a")); //128
  System.out.println(Objects.hashCode("a")); //128
   
  System.out.println(Objects.hashCode("a", "b")); //4066
  System.out.println(Objects.hashCode("b", "a")); //4096
   
  System.out.println(Objects.hashCode("b", "a", "c")); //127075
  System.out.println(Objects.hashCode("a", "c", "b")); //126175
   
  System.out.println(Objects.hashCode(new Person("shma", 23))); //21648900
  System.out.println(Objects.hashCode(new Person("shma", 23))); //21846074
   
  Person person = new Person("jqq", 24);
  System.out.println(Objects.hashCode(person)); //13856786
  System.out.println(Objects.hashCode(person)); //13856786
 }
  
 class Person implements Comparable<Person> {
     public String name;
     public int age;
     Person(String name, int age) {
         this.name = name;
         this.age = age;
     }
  @Override
  public String toString() {
   return Objects.toStringHelper(Person.class)
         .add("name", this.name)
         .add("age", this.age)
         .toString();
  }
  @Override
  public int hashCode() {
   return Objects.hashCode(name, age);
  }
  @Override
  public boolean equals(Object obj) {
   if (this == obj)
    return true;
   if (obj == null)
    return false;
   if (getClass() != obj.getClass())
    return false;
   Person other = (Person) obj;
   if(this.name == other.name && this.age == other.age) 
    return true;
   return false;
  }
  @Override
  public int compareTo(Person perosn) {
    
   return ComparisonChain.start()
          .compare(this.name, perosn.name)
          .compare(this.age, perosn.age)
          .result();
  }
 }
  
 class Student implements Comparable<Student> {
  private String name;
  private int age;
  private int score;
   
  public Student() {
   super();
  }
  public Student(String name, int age, int score) {
   super();
   this.name = name;
   this.age = age;
   this.score = score;
  }
  @Override
  public String toString() {
   return Objects.toStringHelper(this)
        .add("name", name)
        .add("age", age)
        .add("score", score)
        .toString();
  }
  @Override
  public int hashCode() {
   return Objects.hashCode(name, age);
  }
  @Override
  public boolean equals(Object obj) {
   if (obj instanceof Student) {
             Student that = (Student) obj;
             return Objects.equal(name, that.name)
                     && Objects.equal(age, that.age)
                     && Objects.equal(score, that.score);
         }
         return false;
  }
  @Override
  public int compareTo(Student student) {
   return ComparisonChain.start()
          .compare(this.name, student.name)
          .compare(this.age, student.age)
          .compare(this.score, student.score)
          .result();
  }
 }
}
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics