Guava 集合框架

在本系列中我们首先来学习一些Guava的集合框架,也就是这个package:com.google.common.collect

在这个包下面有一些通用的集合接口和一些相关的类。

 

集合类型:

BiMap

   它是java.util.Map接口的一个扩展,它的特性就是它的key和value都是唯一的并且是一一对应的。也就是说“可逆”。简单的描述就是根据key能拿到唯一的value,根据value也能够拿到唯一的key。

Multiset

    它是Collection的扩展,就如同List一样能够容纳重复的值。它的典型应用就是“直方图”。 

Multimap

     Multimap是一个新类型,有点类似java.util.Map,但是可能对于相同的key含有多个entries。

ListMultimap

    ListMultimap是Multimap的一个扩展,也能够容纳相同的entries,同时支持随机访问一个特定key的值。

SetMultimap

    SetMultimap是Multimap的一个扩展,不容许容纳相同的entries,也就是说如果有相同的key出现在SetMultimap中,那么这些key对应的值一定是不相同的。

SortedSetMultimap

    SortedSetMultimap是SetMultimap的一个扩展,对于一个给定的key对应的value是一个SortedSet。

Table

    Table是一个新的类型,有点象java.util.Map,但是它是根据行key和列key的坐标来索引value的。

ClassToInstanceMap

    An extension of Map that associates a raw type with an instance of that type.

 

集合的实现

 

List

    ImmutableList

Set

    ImmutableSet 
    ImmutableSortedSet 
    ContiguousSet (see Range) 

Map

    ImmutableMap 
    ImmutableSortedMap 
    MapMaker

BiMap

    ImmutableBiMap 
    HashBiMap 
    EnumBiMap 
    EnumHashBiMap

Multiset

    ImmutableMultiset 
    HashMultiset 
    LinkedHashMultiset 
    TreeMultiset 
    EnumMultiset 
    ConcurrentHashMultiset

Multimap

    ImmutableMultimap 
    ImmutableListMultimap 
    ImmutableSetMultimap 
    ArrayListMultimap 
    HashMultimap 
    TreeMultimap 
    LinkedHashMultimap 
    LinkedListMultimap

Table

    ImmutableTable 
    ArrayTable 
    HashBasedTable 
    TreeBasedTable

 

ClassToInstanceMap

    ImmutableClassToInstanceMap 
    MutableClassToInstanceMap

 

Classes of static utility methods

    Collections2 
    Iterators 
    Iterables 
    Lists 
    Maps 
    Queues 
    Sets 
    Multisets 
    Multimaps 
    Tables 
    ObjectArrays

 

Comparison

    Ordering 
    ComparisonChain

 

Abstract implementations

    AbstractIterator 
    AbstractSequentialIterator 
    ImmutableCollection 
    UnmodifiableIterator 
    UnmodifiableListIterator

Ranges

    Range 
    RangeMap 
    DiscreteDomain 
    ContiguousSet

Other

    Interner, Interners 
    Constraint, Constraints 
    MapConstraint, MapConstraints 
    MapDifference, SortedMapDifference 
    MinMaxPriorityQueue 
    PeekingIterator 
    

Forwarding collections

    ForwardingCollection 
    ForwardingConcurrentMap 
    ForwardingIterator 
    ForwardingList 
    ForwardingListIterator 
    ForwardingListMultimap 
    ForwardingMap 
    ForwardingMapEntry 
    ForwardingMultimap 
    ForwardingMultiset 
    ForwardingNavigableMap 
    ForwardingNavigableSet 
    ForwardingObject 
    ForwardingQueue 
    ForwardingSet 
    ForwardingSetMultimap 
    ForwardingSortedMap 
    ForwardingSortedMultiset 
    ForwardingSortedSet 
    ForwardingSortedSetMultimap 
    ForwardingTable

时间: 2024-10-26 20:50:25

Guava 集合框架的相关文章

Java集合源码剖析:Java集合框架

Java集合工具包位于Java.util包下,包含了很多常用的数据结构,如数组.链表.栈.队列.集合.哈希表等.学习Java集合框架下大致可以分为如下五个部分:List列表.Set集合.Map映射.迭代器(Iterator.Enumeration).工具类(Arrays.Collections). Java集合类的整体框架如下: 从上图中可以看出,集合类主要分为两大类:Collection和Map. Collection是List.Set等集合高度抽象出来的接口,它包含了这些集合的基本操作,它主

JAVA集合框架之List接口实现类

上一篇博客<JAVA集合框架之Set接口实现类>中介绍了Set接口的相关实现类,这一篇将介绍List接口的实现类. java.util.ArrayList< E > ArrayList有点类似于数组,相比较于数组而言,ArrayList可以动态的更改元素个数,相对于数组较为灵活. 每个 ArrayList 实例都有一个容量.该容量是指用来存储列表元素的数组的大小.它总是至少等于列表的大小.随着向 ArrayList 中不断添加元素,其容量也自动增长.并未指定增长策略的细节,因为这不

java集合框架中List的定义及注意事项

大家知道,集合框架是为了表示和操作集合而规定的一种统一的标准的体系结构,学习集合知识有利于我们解决一系列例如保存数据与对象的问题. 常用的集合在系统中定义了两大接口,List和Set 这里我们就来讨论一下List 的定义以及一些常见的问题 List定义的是有序的并且数据可以重复的集合,我们先看一下下面这段代码: import java.util.ArrayList; import java.util.List; publicclass ListTest{ publicstaticvoid mai

Java编程那些事儿80——集合框架简述

9.6.3 集合框架简述 在JDK API中专门设计了一组类,这组类的功能就是实现各种各样方式的数据存储,这样一组专门用来存储其它对象的类,一般被称为对象容器类,简称容器类,这组类和接口的设计结构也被统称为集合框架(Collection Framework). 这组类和接口都包含在java.util包中. 为了使整个集合框架中的类便于使用,在设计集合框架时大量的使用接口,实际实现的功能类实现对应的接口,这样可以保证各个集合类的使用方式保持统一. 在集合框架中,提供的存储方式共有两种: 1.按照索

Java笔记:集合框架实现原理

这篇文章是对http://www.cnblogs.com/skywang12345/category/455711.html中java集合框架相关文章的一个总结,在此对原作者的辛勤整理表示感谢. Java集合是java提供的工具包,包含了常用的数据结构:集合.链表.队列.栈.数组.映射等.Java集合工具包位置是java.util.* Java集合主要可以划分为4个部分:List列表.Set集合.Map映射.工具类(Iterator迭代器.Enumeration枚举类.Arrays和Collec

java | 集合框架

集合框架 集合代表了一组对象,Java中的集合框架定义了一套规范,用来表示.操作集合,使具体操作与实现细节解耦. 而这些操作无非就是增.删.改.查! 集合和数组的区别: 1.数组的长度固定,集合长度可变. 2.数组只能存储相同类型的数据(基本类型/引用类型),集合可存储各种类型的数据. Java集合框架接口 Java集合框架的顶层接口包括: 一.Collection接口: 1.实现Collection接口的集合有List.Set.Queue(Java队列实现). 2.List:排列有序,可以有重

集合框架

集合框架 简介 集合的由来 数组长度是固定,当添加的元素超过了数组的长度时需要对数组重新定义,太麻烦,java内部给我们提供了集合类,能存储任意对象,长度是可以改变的,随着元素的增加而增加,随着元素的减少而减少 定义: java提供了一种可以存数一组数据的数据结构,其提供了丰富的方法,在实际开发中往往比数组使用的广泛.这种数据结构成为集合:Collection. Collection是一个接口,其定义了集合的相关功能方法. 数组和集合的区别 区别1 : 数组既可以存储基本数据类型,又可以存储引用

JAVA集合框架_相当重要

什么要有集合          面向对象语言对事物的体现都是以对象的形式体现,所以为了方便对多个对象的操作,就是对对象进行存储,集合就是存储对象最常用的一个方式. 数组与集合有什么不用        数组的长度是固定的,而集合的长度是可变的.        数组可以存储基本数据类型,而集合只能存储对象. 集合的特点 集合只用于存储对象,集合长度是可变的,集合可以存储不同类型的对象. 什么是框架          框架(framework)是一个类的集,它奠定了创建高级功能的基础.框架包含很多超类

[Java] 集合框架的层次结构和使用规则梳理

在Java语言中,Java语言的设计者对常用的数据结构和算法做了一些规范(接口)和实现(具体实现接口的类).所有抽象出来的数据结构和操作(算法)统称为Java集合框架(JavaCollectionFramework). Java程序员在具体应用时,不必考虑数据结构和算法实现细节,只需要用这些类创建出来一些对象,然后直接应用就可以了,这样就大大提高了编程效率. 概述 什么是框架?  类库的集合 什么是集合? 存放数据的容器 集合框架用来干什么? 用来表示和操作的统一的架构 集合框架包含了两部分:一