美文网首页
guava table

guava table

作者: hehehehe | 来源:发表于2020-12-30 18:21 被阅读0次
    Table

    Map<FirstName, Map<LastName, Person>>
    Table支持“row”和“column”,而且提供多种视图。

    public static void main(String[] args) throws IOException {
            Table<String, Integer, String> aTable = HashBasedTable.create();
    
            for (char a = 'A'; a <= 'C'; ++a) {
                for (Integer b = 1; b <= 3; ++b) {
                    aTable.put(Character.toString(a), b, String.format("%c%d", a, b));
                }
            }
    
            System.out.println(aTable.column(2));
            System.out.println(aTable.row("B"));
            System.out.println(aTable.get("B", 2));
    
            System.out.println(aTable.contains("D", 1));
            System.out.println(aTable.containsColumn(3));
            System.out.println(aTable.containsRow("C"));
            System.out.println(aTable.columnMap());
            System.out.println(aTable.rowMap());
    
            System.out.println(aTable.remove("B", 3));
    
        }
    
    Table视图:
    rowMap()返回一个Map<R, Map<C, V>>的视图。rowKeySet()类似地返回一个Set<R>。
    row(r)返回一个非null的Map<C, V>。修改这个视图Map也会导致原表格的修改。
    和列相关的方法有columnMap(), columnKeySet()和column(c)。(基于列的操作会比基于行的操作效率差些)
    cellSet()返回的是以Table.Cell<R, C, V>为元素的Set。这里的Cell就类似Map.Entry,但是它是通过行和列来区分的。
    
    Table有以下实现:
    HashBasedTable:基于HashMap<R, HashMap<C, V>>的实现。
    TreeBasedTable:基于TreeMap<R, TreeMap<C, V>>的实现。
    ImmutableTable:基于ImmutableMap<R, ImmutableMap<C, V>>的实现。(注意,ImmutableTable已对稀疏和密集集合做了优化)
    ArrayTable:ArrayTable是一个需要在构建的时候就需要定下行列的表格。这种表格由二维数组实现,这样可以在密集数据的表格的场合,提高时间和空间的效率。
    

    相关文章

      网友评论

          本文标题:guava table

          本文链接:https://www.haomeiwen.com/subject/skdqoktx.html