guava集合工具类基本使用
Multiset基本使用
`public class MultisetTest {
private static String ancientPoetry ="山不在高,有仙则名。水不在深,有龙则灵。斯是陋室,惟吾德馨。苔痕上阶绿,草色入帘青。" +
"谈笑有鸿儒,往来无白丁。可以调素琴,阅金经。" +
"无丝竹之乱耳,无案牍之劳形。南阳诸葛庐,西蜀子云亭。孔子云:何陋之有?";
// 统计文字
@Test
public void handle(){
// Multiset创建
Multiset<Character> multiset = HashMultiset.create();
// string 转换 char 数组
char[] chars = ancientPoetry.toCharArray();
// 遍历数组
Chars.asList(chars)
.stream()
.forEach(character -> {
multiset.add(character);
});
System.out.println("size : " + multiset.size());
// 注意因为是字符数组所以要用单引号
System.out.println("不字一共出现几次 : " + multiset.count('不'));
}
}
Sets
public class SetsTest {
/*
* Sets工具类的常用方法
* 并集/交集/差集/分解集合中的所有子集
* */
private static final Set set1 = Sets.newHashSet(1,2,3,4);
private static final Set set2 = Sets.newHashSet(4,5,6);
// 并集
@Test
public void union(){
// set1和set2的集合都归到set里面
Set<Integer> set = Sets.union(set1, set2);
System.out.println(JSON.toJSONString(set,true));
}
@Test
// 交集
public void intersection(){
Set<Integer> set = Sets.intersection(set1, set2);
System.out.println(JSON.toJSONString(set,true));
}
// 差集:如果元素属于a并且不属于b
@Test
public void difference(){
Set<Integer> set = Sets.difference(set1, set2);
System.out.println(JSON.toJSONString(set,true));
// 相对差集: 属于a而且不属于b.或者属于b而且不属于b
set = Sets.symmetricDifference(set1,set2);
System.out.println(JSON.toJSONString(set,true));
}
}
`
Lists
`public class ListsTest {
/*
* Lists工具类的常用方式
* 反转/拆分
* */
@Test
public void partition(){
List<Integer> list =
Lists.newArrayList(1, 2, 3, 4, 5, 6 );
// 拆分成三个一组
List<List<Integer>> partition = Lists.partition(list, 3);
System.out.println(JSON.toJSONString(partition,true));
}
// 反转
@Test
public void reverse(){
List<Integer> list =
Lists.newArrayList(1, 2, 3, 4, 5, 6 );
List<Integer> reverse = Lists.reverse(list);
System.out.println(JSON.toJSONString(reverse,true));
}
}
`

浙公网安备 33010602011771号