- 浏览: 3420981 次
- 性别:
- 来自: 珠海
文章分类
- 全部博客 (1633)
- Java (250)
- Android&HTML5 (111)
- Struts (10)
- Spring (236)
- Hibernate&MyBatis (115)
- SSH (49)
- jQuery插件收集 (55)
- Javascript (145)
- PHP (77)
- REST&WebService (18)
- BIRT (27)
- .NET (7)
- Database (105)
- 设计模式 (16)
- 自动化和测试 (19)
- Maven&Ant (43)
- 工作流 (36)
- 开源应用 (156)
- 其他 (16)
- 前台&美工 (119)
- 工作积累 (0)
- OS&Docker (83)
- Python&爬虫 (28)
- 工具软件 (157)
- 问题收集 (61)
- OFbiz (6)
- noSQL (12)
最新评论
-
HEZR曾嶸:
你好博主,这个不是很理解,能解释一下嘛//左边+1,上边+1, ...
java 两字符串相似度计算算法 -
天使建站:
写得不错,可以看这里,和这里的这篇文章一起看,有 ...
jquery 遍历对象、数组、集合 -
xue88ming:
很有用,谢谢
@PathVariable映射出现错误: Name for argument type -
jnjeC:
厉害,困扰了我很久
MyBatis排序时使用order by 动态参数时需要注意,用$而不是# -
TopLongMan:
非常好,很实用啊。。
PostgreSQL递归查询实现树状结构查询
更详细整理: http://blog.csdn.net/alecf/article/details/24775979
原文: http://my.oschina.net/shma1664/blog/596904
1、基本功能
1)字符串操作
2)对象封装:Objects
原文: 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(); } } }
发表评论
-
Java Comparable和Comparator
2016-06-26 08:52 694http://my.oschina.net/android52 ... -
Java集合框架之fastutil & koloboke
2016-06-23 14:04 2470Java集合框架之fastutil http://rensan ... -
ehcache 分布式支持
2016-06-05 22:26 1098原文 http://my.oschina.net/glenxu ... -
Intellij IDEA插件开发入门
2016-05-26 11:42 2882原文: http://blog.csdn.net/dc_726 ... -
阿里巴巴Druid数据源的配置与使用
2016-05-24 17:42 1542http://my.oschina.net/wjme/blog ... -
mysql中间件研究(Atlas,cobar,TDDL), 分库分表插件
2016-05-09 14:15 3441http://www.guokr.com/blog/47576 ... -
Java集合: Queue和Deque
2016-05-09 09:49 1861Queue http://my.oschina.net/kev ... -
使用gzip优化web应用(filter实现)
2016-05-07 01:45 1030使用gzip优化web应用(filter实现) http:// ... -
Byteman 3.0.5 发布,Java 字节码注入工具
2016-04-23 10:29 1768Byteman 3.0.5 发布,Java 字 ... -
RandomStringUtils的说明和生成随机汉字
2016-04-20 15:21 1387更多参考: http://my.oschina.net/wil ... -
通过IP地址获取地理位置
2016-04-20 15:19 894http://my.oschina.net/githubhty ... -
Java编程中使用正则表达式过滤非数字字符串
2016-04-14 13:51 1716/** * * @param str ... -
非对称加密DH算法,DH代码实现
2016-04-13 11:33 1355RSA算法原理(一)http:// ... -
企业支付宝账号开发接口教程
2016-03-31 14:52 1234企业支付宝账号开发接口教程--JAVA-UTF-8(实际操作- ... -
java double类型数据操作工具类
2016-03-28 17:36 1238http://my.oschina.net/yxwblog/b ... -
double转换到BigDecimal
2016-03-28 17:11 1543BigDecimal b = new BigDecimal(d ... -
Java 生成好看的验证码
2016-03-23 10:52 3357http://www.oschina.net/code/sni ... -
Linux环境安装配置Swftools
2016-03-22 21:01 1102http://tetop.blog.51cto.com/188 ... -
java压缩与解压缩文件
2016-03-20 22:03 1469http://www.oschina.net/code/sni ... -
java图像压缩
2016-03-19 23:20 951http://my.oschina.net/686991/bl ...
相关推荐
Java常用工具类整理 本文将详细介绍 Spring 及 Guava 相关工具类的使用说明和代码 demo。这些工具类都是 Java 开发中常用的实用工具,可以帮助开发者快速高效地完成各种任务。 一、Spring 工具类 1. org.spring...
以上只是部分常见的Java工具类及其重要方法,实际上还有许多其他库和工具类,如Apache HttpClient、Google Guice、Apache Commons Codec等,它们都在各自的领域提供了强大的功能。在实际开发中,根据项目需求选择...
- **Guava**:Google提供的Java库,包含大量常用的工具类和数据结构。 9. **面试准备** - **集合框架**:深入理解集合类的特性,如ArrayList与LinkedList的性能差异,以及在多线程环境下的选择。 - **IO框架**:...
5. **Apache Commons**:Apache Commons是Apache软件基金会的一个项目,提供了大量实用工具类,如IO、Lang、Collections、Codec等,极大地丰富了Java的标准库。 6. **Log4j**:Log4j是Java的日志框架,用于记录应用...
例如,`log4j.jar`用于日志记录,`slf4j-api.jar`和相应的实现库用于更高级的日志抽象,`commons-lang3.jar`提供了很多实用的工具类,`guava.jar`是Google提供的大量常用工具类库。 在实际开发中,根据项目需求,...
2. Guava:Google的工具库,包含丰富的数据结构、并发工具、缓存机制等。 以上只是Java编程的一部分知识点,实际开发中还需要理解设计模式、数据库操作、框架应用、测试技巧等多个方面。不断学习和实践,才能真正...
1. Apache Commons Lang:这个库提供了许多实用的工具类,如字符串处理、日期时间操作、数学函数等,增强了JDK的内置功能。 2. Guava:Google推出的高效库,包含集合、缓存、并发、I/O等多方面工具,尤其在处理并发...
11. **Guava**: Guava 是Google提供的一个Java库,包含了大量的系统级别的实用工具类,如集合、并发、缓存、I/O等。 12. **JUnit.jupiter**: 这是JUnit 5的新测试引擎,提供了更现代的测试API和更灵活的测试配置。 ...
11. **Guava库**:guava.jar,Google提供的一个强大的Java工具库,包含了大量的实用工具类。 12. **Apache Ant**:ant.jar,是Java的构建工具,类似于Make或NPM,用于自动化构建过程。 13. **Apache Maven**:...
13. **Java API和库**:介绍常用API,如Math、Date、Calendar,以及第三方库如Apache Commons或Google Guava的使用。 14. **设计模式**:可能涵盖了单例、工厂、观察者、装饰器等常见设计模式的概念和应用场景。 ...
15. **并发工具类**:Java并发包(java.util.concurrent)提供了许多高级并发工具,如Semaphore、CountDownLatch、CyclicBarrier等,有助于编写高效的多线程代码。 这个Java代码库是一个宝贵的资源,不仅涵盖了Java...
3. **Apache Commons**:如commons-lang3.jar,提供了许多实用的工具类,增强Java语言的功能,如字符串处理、日期时间操作等。 4. **Log4j**:log4j.jar,是一个流行的日志记录框架,用于记录程序运行中的各种信息...
15. **Guava**:Google提供的Guava库包含了大量Java集合框架的扩展,如Multimap、Multiset、Immutable collections等,以及并发、缓存、I/O、字符串处理等方面的工具类。 以上只是一部分Java生态系统中的杰出代表,...
Apache Commons是另一个重要的库集合,提供了大量实用工具类,如IO、Lang和Math等模块。 3. **测试工具的不可或缺** 在"awesome-java"清单中,JUnit作为最流行的单元测试框架,是Java开发者必备的工具,而Mockito...