ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

11、guava对集合的支持

2021-11-18 19:33:03  阅读:132  来源: 互联网

标签:11 java ArrayList list util add 集合 import guava


11、guava对集合的支持

版本下载:https://repo1.maven.org/maven2/com/google/guava/guava/
Guava工程包含了若干被Google的 Java项目广泛依赖 的核心库,例如:集合 [collections] 、缓存 [caching] 、原
生类型支持 [primitives support] 、并发库 [concurrency libraries] 、通用注解 [common annotations] 、字符
串处理 [string processing] 、I/O 等等。 所有这些工具每天都在被Google的工程师应用在产品服务中。
Guava对JDK集合的扩展,这是Guava最成熟和为人所知的部分。

1、 不可变集合:用不变的集合进行防御性编程和性能提升。
2 、新集合类型: multisets, multimaps, tables,等
3、 强大的集合工具类:提供java.util.Collections中没有的集合工具
4 、扩展工具类:让实现和扩展集合类变得更容易,比如创建Collection的装饰器,或实现迭代器
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

JUnit在开发中用来代码测试,而不用main方法

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

import java.awt.List;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;

import org.junit.Test;

import com.google.common.collect.ImmutableList;

public class GavaDome {

	@Test  //(注解)
	public void testGuaval() {
		System.out.println("test guava");
		//java.util.List<String> list=Arrays.asList("jack","tom");
		//list.add("vinec");
		
		
		ArrayList<String> list=new ArrayList<String>();
		list.add("tom");
		list.add("lily");
		list.add("bin");
//		java.util.List<String> readList=Collections.unmodifiableList(list);
//		readList.add("jcke");
		
//		ImmutableList<String> iList=ImmutableList.of("jack","tom","lily");
//		iList.add("vince");
	}
}

异常

函数式编程

1、只读设置
2、函数式编程:过滤器
3、函数式编程:转换
4、组合式函数编程
5、加入约束:非空、长度验证
6、集合操作:交集、差集、并集
7、Multiset:无序可重复
8、Multimap key可以重复
9、BiMap:双向Map(bidirectional Map) 键与值不能重复
10、双键的Map -->Table —>rowKey+columnKye+value

import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Set;

import org.junit.Test;

import com.google.common.base.Function;
import com.google.common.base.Functions;
import com.google.common.collect.Collections2;
import com.google.common.collect.Sets;

public class GavaDome {
	
	/*
	 * 组合式
	 */
	@Test
	public void testGuaval2() {
		ArrayList<String> list=new ArrayList<String>();
		 list.add("jack");
		 list.add("tom");
		 list.add("Jacks");
		 list.add("lily");
		 
		 Function<String,String> f1=new Function<String,String>(){
			@Override
			public String apply(String t) {
				// TODO Auto-generated method stub
				return t.length()>4?t.substring(0,3):t;
			}			 
		 }; 
		 Function<String,String> f2=new Function<String,String>(){
				@Override
				public String apply(String t) {
					// TODO Auto-generated method stub
					return t.toUpperCase();
				}			 
			 }; 
			Function<String, String> f=Functions.compose(f1, f2);
			Collection<String> s=Collections2.transform(list,f);
			s.forEach(System.out::println);
	}
	
	
/*
 * 转换	
 */
	@Test  //(注解)
	public void testGuaval1() {
		Set<Long> sets=Sets.newHashSet(346187L,245633L,34573L);
		Collection<String> timeCollect=Collections2.transform(sets, (s)->new SimpleDateFormat("yyy-MM-dd").format(s));
		timeCollect.forEach(System.out::println);
	}
	
/*
 * 过滤器
 */
	@Test  //(注解)
	public void testGuaval() {
		ArrayList<String> list=new ArrayList<String>();
		 list.add("jack");
		 list.add("tom");
		 list.add("lily");
		 list.add("lily");
		 Collection<String> result=Collections2.filter(list, (e)->e.startsWith("l"));
		 result.forEach(System.out::println);
	}
}


1970-01-01
1970-01-01
1970-01-01
JACK
TOM
JAC
LILY
lily
lily

注意不要忽略@Test

标签:11,java,ArrayList,list,util,add,集合,import,guava
来源: https://blog.csdn.net/weixin_53330986/article/details/121402151

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有