Guava系列之超实用的集合工具类
依赖:
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>19.0</version>
</dependency>
主要方法:
各种创建list的方法
asList()将数据组转成list
newArrayList()
newArrayListWithCapacity(10) 指定容量的创建
newArrayListWithExpectedSize(20) 初始化指定容量
newCopyOnWriteArrayList()
newLinkedList()
partition(List list, int size) 将list按指定大小分隔成多个list
cartesianProduct(List<? extends B>… lists) 获取多个list的笛卡尔集
charactersOf(String str) 将字符串转成字符集合
reverse(List list) 反转list
transform(List fromList, Function<? super F, ? extends T> function) 数据转换
举例:
各种创建list的方法:
@Test
public void ListCreateTest(){
//将数组转成list,并在开头位置插入元素
List<String> list = Lists.asList("a",new String[]{"b","c","d"});
List<String> list1 = Lists.asList("a","b",new String[]{"c","d","e"});
//直接创建ArrayList
ArrayList<String> arrayList = Lists.newArrayList();
//创建ArrayList,并初始化
ArrayList<String> arrayList1 = Lists.newArrayList("a","b","c");
//基于现有的arrayList,创建一个arrayList
ArrayList<String> arrayList2 = Lists.newArrayList(arrayList1);
//初始化指定容量大小的ArrayList,其中容量指ArrayList底层依赖的数组的length属性值,常用于提前知道ArrayList大小的情况的初始化
ArrayList<String> arrayList3 = Lists.newArrayListWithCapacity(10);
//创建CopyOnWriteArrayList
CopyOnWriteArrayList<String> copyOnWriteArrayList = Lists.newCopyOnWriteArrayList();
//创建linkedList
LinkedList<String> linkedList = Lists.newLinkedList();
}
按指定大小分隔list:
@Test
public void partitionTest(){
List<String> list = Lists.newArrayList("a","b","c","d","e");
//将list按大小为2分隔成多个list
List<List<String>> splitList = Lists.partition(list,2);
System.out.println(splitList);
}
输出:
[[a, b], [c, d], [e]]
字符串转成字符集合:
@Test
public void partitionTest(){
ImmutableList<Character> list = Lists.charactersOf("ababcdfb");
System.out.println(list);
}
输出:
[a, b, a, b, c, d, f, b]
list反转
@Test
public void partitionTest(){
List<String> list = Lists.newArrayList("a","b","c","1","2","3");
//反转list
List<String> reverseList = Lists.reverse(list);
System.out.println(reverseList);
}
输出:
[3, 2, 1, c, b, a]
更多方法:https://blog.csdn.net/pzjtian/article/details/106739606
浙公网安备 33010602011771号