guava-collections

JDK和Guava对应关系

Lists :

partition(List, int):按指定大小分割list, int为分割的大小
 
@Test
    public void testPartition() {
        ArrayList<Source> li = Lists.newArrayList();
        Source source1 = new Source();
        source1.setName("a");
        li.add(source1);

        Source source2 = new Source();
        source2.setName("c");
        li.add(source2);

        Source source3 = new Source();
        source3.setName("b");
        li.add(source3);

        List<List<Source>> partition = Lists.partition(li, 1);

        for (List<Source> list : partition) {

            System.out.println(list);//[Source{list=[], name='a'}]//[Source{list=[], name='c'}] //[Source{list=[], name='b'}]
}
    }

 

reverse(List):将list集合元素反转,不可变List用ImmutableList.reverse()
注意: 并不是改变原list , 而是返回一个新的list ,需要定义变量接收
@Test
    public void testInts() {
        int[] arr = {1,2,3,45};

        List<Integer> integers = Ints.asList(arr);// [1, 2, 3, 45]

        List<Integer> reverse = Lists.reverse(integers);
        System.out.println(integers);//[1, 2, 3, 45]
        System.out.println(reverse);//[45, 3, 2, 1]

    }

 

Sets:
@Test
    public void testSets() {
        Set<String> set1 = Sets.newHashSet();
        set1.add("b");
        set1.add("c");

        Set<String> set2 = Sets.newHashSet();
        set2.add("a");
        set2.add("b");

        Sets.SetView<String> difference = Sets.difference(set1, set2);// 取左差集
        System.out.println(difference);//[c]

        Sets.SetView<String> symmetricDifference = Sets.symmetricDifference(set1, set2);// 取两方差集
        System.out.println(symmetricDifference);//[c, a]

        Sets.SetView<String> intersection = Sets.intersection(set1, set2);// 取交集
        System.out.println(intersection);//[b]

        Sets.SetView<String> union = Sets.union(set1, set2);// 取并集
        System.out.println(union);//[b, c, a]

        // 过滤,结果集中只包含返回true的
        Set<String> filter = Sets.filter(set1, new Predicate<String>() {
            @Override
            public boolean apply(String s) {
                return s.equals("b");
            }
        });
        System.out.println(filter);//[b]
    }
immutableEnumSet( E anElement, E... otherElements):返回一个包含给定枚举元素的不可变的Set实例。
immutableEnumSet( Iterable<E> elements):返回一个包含给定枚举元素的不可变的Set实例。
newEnumSet(Iterable<E> iterable,Class<E> elementType):返回一个包含给定元素的EnumSet实例,与EnumSet#copyOf(Collection)方法不同,当给定集合为 空的时候,不会产生异常,它可以转换任何实现了Iterable接口的类,不仅仅是Collection。它会先根据传入的元素类型创建一个空的 EnumSet,再把给定的元素添加到EnumSet返回。
newHashSet():返回一个可变的空的HashSet实例。
newHashSet(E... elements):返回一个可变买的HashSet包含给定的元素。
newHashSetWithExpectedSize(int expectedSize):构造一个期望长度为expectedSize的HashSet实例。
newHashSet(Iterable<? extends E> elements):返回一个可变的HashSet包含给定的元素,给定元素实现Iterable接口。
newHashSet(Iterator<? extends E> elements):返回一个可变的HashSet包含给定的元素,给定元素实现Iterator接口。
newConcurrentHashSet():创建一个线程安全的Set,由ConcurrentHashMap的实例支持,因此进行了相同的并发性担保,与HashSet不同的是,这个Set不允许null元素,该Set是可序列化的。
newConcurrentHashSet( Iterable<? extends E> elements):创建一个线程安全的Set,包含给定的元素,由ConcurrentHashMap的实例支持,因此进行了相同的并发性担保,与 HashSet不同的是,这个Set不允许null元素,该Set是可序列化的。
newLinkedHashSet():创建一个可变的、空的LinkedHashSet实例。
newLinkedHashSetWithExpectedSize( int expectedSize):构造一个期望长度为expectedSize的LinkedHashSet实例。
newLinkedHashSet( Iterable<? extends E> elements):构造一个包含给定元素的LinkedHashSet实例。
newTreeSet():返回一个可变的空的TreeSet实例。
newTreeSet( Iterable<? extends E> elements):返回一个可变的包含给定元素的TreeSet实例。
newTreeSet(Comparator<? super E> comparator):创建一个具有给定的比较器可变TreeSet的实例。
newIdentityHashSet():创建一个空的Set,使用特性来确定是否相等。
newCopyOnWriteArraySet():创建一个空的CopyOnWriteArraySet实例。
newCopyOnWriteArraySet( Iterable<? extends E> elements):创建一个包含给定元素的CopyOnWriteArraySet实例。
complementOf(Collection<E> collection):创建一个EnumSet包括不属于指定集合中的所有枚举值。
complementOf( Collection<E> collection, Class<E> type):创建一个EnumSet包括不属于指定集合中的所有枚举值。
newSetFromMap(Map<E, Boolean> map):返回一个由给定map支持的Set。
union( final Set<? extends E> set1, final Set<? extends E> set2):返回两个set集合的并集的不可修改SetView。(若A和B是集合,则A和B并集是有所有A的元素和所有B的元素,而没有其他元素的集 合)
intersection( final Set<E> set1, final Set<?> set2):返回两个set集合的交集的不可修改SetView。(两个集合A 和 集合B 的交集是指含有所有既属于 A 又属于 B 的元素,而没有其他元素的集合)
difference( final Set<E> set1, final Set<?> set2):返回两个set集合的差的不可修改SetView。(A,B是两个集合,则所有属于A且不属于B的元素构成的集合,叫做A与B的差集)
symmetricDifference( Set<? extends E> set1, Set<? extends E> set2):返回两个set集合的对称差的不可修改SetView。(对称差,即两个集合的对称差是只属于其中一个集合,而不属于另一个集合的元素组成的 集合)
filter(Set<E> unfiltered, Predicate<? super E> predicate):返回传入Set集合unfiltered中满足给定Predicate的元素集合Set。
filter( SortedSet<E> unfiltered, Predicate<? super E> predicate):返回传入SortedSet集合unfiltered中满足给定Predicate的元素集合SortedSet。
filter( NavigableSet<E> unfiltered, Predicate<? super E> predicate):返回传入NavigableSet集合unfiltered中满足给定Predicate的元素集合NavigableSet。
cartesianProduct( List<? extends Set<? extends B>> sets):返回通过从各给定集中选择一个元素所形成每一个可能的集合。
cartesianProduct( Set<? extends B>... sets):返回通过从各给定集中选择一个元素所形成每一个可能的集合。
powerSet(Set<E> set):返回一个set,包含给定set的所有可能父级集合。
unmodifiableNavigableSet( NavigableSet<E> set):返回指定NavigableSet的不可修改视图。
synchronizedNavigableSet( NavigableSet<E> navigableSet):返回一个同步的(线程安全的)NavigableSet,由指定的NavigableSet支持。

 

 

posted @ 2018-02-02 13:14  jiabei  阅读(183)  评论(0编辑  收藏  举报