【Java】guava(五) splitter joiner

本文通过具体示例,介绍了如何使用List和Map进行数据处理,包括使用Splitter进行字符串分割,将结果存储到List中,以及使用Joiner进行连接。同时,展示了Map的键值对操作和数据转换技巧。

List使用:

@Test
    public void testList(){
        List<String> list = Splitter.on("-")
                .splitToList("A-B-C");
        System.out.println(list);

        List<String> list1 = new ArrayList<>(list);
        list1.add(null);
        list1.add("D");
        String s = Joiner.on("@")
                .skipNulls() // 如果不加这句,list里有null会报错
                .join(list1);
        System.out.println(s);
    }

[A, B, C]
A@B@C@D

 

Map使用:

    @Test
    public void testMap(){
        Map<String, String> map = Splitter.on("-")
                .withKeyValueSeparator("=")
                .split("A=1-B=2-C=3");
        System.out.println(map);

        String s = Joiner.on("@")
                .withKeyValueSeparator(":")
                .join(map);
        System.out.println(s);
    }

{A=1, B=2, C=3}
A:1@B:2@C:3

### Java Guava 库的使用与文档 Guava 是由 Google 开发并维护的一套核心库集合,提供了许多实用工具类来简化日常编程工作[^1]。这些工具涵盖了集合框架增强、缓存机制、原生不可变集合支持以及字符串处理等多个方面。 #### 基本功能展示 ##### 不可变集合 为了创建一个不可变列表,可以采用如下方式: ```java import com.google.common.collect.ImmutableList; ImmutableList<String> immutableList = ImmutableList.of("apple", "banana"); // 尝试修改该列表将会抛出 UnsupportedOperationException 异常 immutableList.add("orange"); ``` ##### 缓存构建器 CacheBuilder 的简单应用实例 下面是一个简单的例子展示了如何利用 `CacheBuilder` 来实现带有过期策略的记忆化函数: ```java import com.google.common.cache.Cache; import com.google.common.cache.CacheBuilder; public class Example { private static final int MAX_SIZE = 100; // 设置最大容量 private static final long EXPIRE_AFTER_WRITE_DURATION = 10L; // 单位秒 public static void main(String[] args) throws Exception { Cache<Object, Object> cache = CacheBuilder.newBuilder() .maximumSize(MAX_SIZE) .expireAfterWrite(EXPIRE_AFTER_WRITE_DURATION, TimeUnit.SECONDS) .build(); // 使用cache.put() 和 cache.getIfPresent() 方法来进行数据存储和检索... } } ``` ##### JoinerSplitter 类用于高效拼接拆分字符串 当涉及到大量字符串连接操作时,Joiner 可以显著提高性能;而 Splitter 则适用于快速分割字符串为多个部分: ```java import com.google.common.base.Joiner; import com.google.common.base.Splitter; String joined = Joiner.on("; ").join(Arrays.asList("a", "b", "c")); Iterable<String> split = Splitter.on(';').trimResults().omitEmptyStrings().split("foo;bar;; qux ;"); System.out.println(joined); // 输出:"a; b; c" for (String s : split) { // 迭代输出 ["foo","bar","qux"] System.out.print(s + ", "); } ``` 通过上述几个方面的介绍可以看出,Guava 提供了许多强大而又便捷的功能模块,在实际开发过程中能够极大地提升编码效率和程序质量。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值