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));
}

}
`

posted @ 2020-12-06 15:22  Daydream50  阅读(465)  评论(0)    收藏  举报