代码编织梦想

1、guava的table类,可代替map<string,map<string,string>>,使用非常方便。

import com.google.common.collect.HashBasedTable;
import com.google.common.collect.Table;
import java.util.Map;
import java.util.Set;

public class Test03 {
    public static void main(String[] args) {
        Table<String, String, String> employeeTable = HashBasedTable.create();
        employeeTable.put("IBM", "101", "Mahesh");
        employeeTable.put("IBM", "102", "Ramesh");
        employeeTable.put("IBM", "103", "Suresh");

        employeeTable.put("Microsoft", "111", "Sohan");
        employeeTable.put("Microsoft", "112", "Mohan");
        employeeTable.put("Microsoft", "113", "Rohan");

        employeeTable.put("TCS", "121", "Ram");
        employeeTable.put("TCS", "102", "Shyam");
        employeeTable.put("TCS", "123", "Sunil");

        //返回所有行数据
        System.out.println(employeeTable.cellSet());

        //返回所有公司
        System.out.println(employeeTable.rowKeySet());

        //返回所有员工编号
        System.out.println(employeeTable.columnKeySet());

        //返回所有员工姓名
        System.out.println(employeeTable.values());

        //公司中的所有员工和员工编号
        System.out.println(employeeTable.rowMap());

        //员工编号对应的公司和员工名称
        System.out.println(employeeTable.columnMap());

        //IBM公司中所有信息
        Map<String, String> ibmEmployees = employeeTable.row("IBM");

        //row+column对应的value
        System.out.println(employeeTable.get("IBM","101"));

        System.out.println("List of IBM Employees");
        for (Map.Entry<String, String> entry : ibmEmployees.entrySet()) {
            System.out.println("Emp Id: " + entry.getKey() + ", Name: " + entry.getValue());
        }

        //table中所有的不重复的key
        Set<String> employers = employeeTable.rowKeySet();
        System.out.print("Employers: ");
        for (String employer : employers) {
            System.out.print(employer + " ");
        }
        System.out.println();

        //得到员工编号为102的所有公司和姓名
        Map<String, String> EmployerMap = employeeTable.column("102");
        for (Map.Entry<String, String> entry : EmployerMap.entrySet()) {
            System.out.println("Employer: " + entry.getKey() + ", Name: " + entry.getValue());
        }
    }
}

结果:

[(IBM,101)=Mahesh, (IBM,102)=Ramesh, (IBM,103)=Suresh, (Microsoft,111)=Sohan, (Microsoft,112)=Mohan, (Microsoft,113)=Rohan, (TCS,121)=Ram, (TCS,102)=Shyam, (TCS,123)=Sunil]
[IBM, Microsoft, TCS]
[101, 102, 103, 111, 112, 113, 121, 123]
[Mahesh, Ramesh, Suresh, Sohan, Mohan, Rohan, Ram, Shyam, Sunil]
{IBM={101=Mahesh, 102=Ramesh, 103=Suresh}, Microsoft={111=Sohan, 112=Mohan, 113=Rohan}, TCS={121=Ram, 102=Shyam, 123=Sunil}}
{101={IBM=Mahesh}, 102={IBM=Ramesh, TCS=Shyam}, 103={IBM=Suresh}, 111={Microsoft=Sohan}, 112={Microsoft=Mohan}, 113={Microsoft=Rohan}, 121={TCS=Ram}, 123={TCS=Sunil}}
Mahesh
List of IBM Employees
Emp Id: 101, Name: Mahesh
Emp Id: 102, Name: Ramesh
Emp Id: 103, Name: Suresh
Employers: IBM Microsoft TCS 
Employer: IBM, Name: Ramesh
Employer: TCS, Name: Shyam
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_42255981/article/details/87284961

guava ---- table矩阵-爱代码爱编程

  使用Guava对矩阵的实现, 做一些矩阵存贮等操作将大大提高效率, 而不是自己用JDK的Array去实现, 可能带来不少bug, 而且增加代码复杂度。 package com.wenniuwuren.collections; import java.util.Map; import com.google.common.collect.H

guava之table-爱代码爱编程

相当于双键的Map Table<String,String,Integer> table = HashBasedTable.create(); table.put("json","a",100); table.put("json","b",90); table.put("marry","a",95); table.put("mar

guava使用之table_其实我系个好人的博客-爱代码爱编程_guava table

当我们需要多个索引的数据结构的时候,通常情况下,我们只能用这种丑陋的Map<FirstName, Map<LastName, Person>>来实现。 为此Guava提供了一个新的集合类型-Tabl

通过分析 jdk 源代码研究 treemap 红黑树算法实现_iteye_15449的博客-爱代码爱编程

简介: TreeMap 和 TreeSet 是 Java Collection Framework 的两个重要成员,其中 TreeMap 是 Map 接口的常用实现类,而 TreeSet 是 Set 接口的常用实现类。虽然 HashMap 和 HashSet 实现的接口规范不同,但 TreeSet 底层是通过 TreeMap 来实现的,因此二者的实现方式完

guava table 示例教程-爱代码爱编程

Guava Table 示例教程 本文带你学习Guava Table 接口及其实现。Guava Table 是类似表格结构的集合,包含行、列以及相应的单元格值。行和列作为有序的键。 概述 如果把Guava Table和

guava集合工具 table接口_weixin_42868638的博客-爱代码爱编程

功能:简化表格操作,形似Excel的单元格操作; 代码: package com.example.google.guava.demo.collection; import com.google.common.co

【opencv&opengl&marker-based ar】原理部分_o0o_-_的博客-爱代码爱编程

文章目录 说在前面针孔相机模型原理 OpenCV Part相机标定相机内参(Camera Parameter)畸变系数(Distortion coeffs)相机外参 OpenGL PartModel Matr

guava 之 multiset_pzhu_cg_csdn的博客-爱代码爱编程

Multiset 是 guava 包下一种新的集合,可以方便的统计集合中重复元素出现的次数。 Multiset 有以下实现类: HashMultiset::元素存放于 HashMapLinkedHashMap:即元素的排

Guava 心得:Guava 新集合 —— Table 等-爱代码爱编程

Table 当我们需要多个索引的数据结构的时候,通常情况下,我们只能用这种丑陋的Map<FirstName, Map<LastName, Person>>来实现。为此Guava提供了一个新的集合类型-Table集合类型,来支持这种数据结构的使用场景。Table支持“row”和“column”,而且提供多种视图。 @Test

《Guava Table接口》学习笔记-爱代码爱编程

Table代表一个特殊的映射,其中两个键可以在组合的方式被指定为单个值。它类似于创建映射的映射。     接口声明   以下是 com.google.common.collect.Table<R,C,V> 接口的声明:   @GwtCompatible public interface Table<R,C,V>  

java guava table_guava之Table-爱代码爱编程

Table 双键的 map rowKey+columnKey+value 以学车成绩表来举例 成绩表 方法: 所有的行数据:cellSet(); 所有的学生:rowKeySet(); 所有的课程:columnKeySet(); 所有的成绩:values(); 学生对应的课程和成绩:rowMap();课程为键 或者row(学生)

java guava table_Guava Table接口-爱代码爱编程

Guava Table接口 Table代表一个特殊的映射,其中两个键可以在组合的方式被指定为单个值。它类似于创建映射的映射。 接口声明 以下是 com.google.common.collect.Table 接口的声明: @GwtCompatible public interface Table 接口方法 Table 例子 选择

guava中的Table-爱代码爱编程

提供两层映射关系(row, col)->value 1、Table接口 方法有 boolean contains(Object rowKey, Object columnKey)boolean containsRow(Object rowKey)boolean containsColumn(Object columnKey)boolean

guava类库——table详解_西凉的悲伤的博客-爱代码爱编程

目录 前言一、使用Guava二、Table的创建和介绍三、通过行和列来获取值四、通过行和列来删除值五、判断行、列、值是否存在六、Table的遍历七、Table转Map八、Table翻转行和列九、Table的行列值转为