如何使用Guava ArrayTable创建二维表?

时间:2017-03-16 14:23:28

标签: java guava

我看到了很多番石榴哈希表。是否有任何ArrayTable示例供参考,例如如何创建ArrayTable?

1 个答案:

答案 0 :(得分:0)

使用静态// The following code snippets only operates on one employee. If you have an array use an iteration function depending on your needs. const employee = { _id: 123, employeeID: '123asd12', desiredRoleOther: 'Other role', desiredRole3: 'Role 3', desiredRole2: 'Role 2', desiredRole1: 'The Role', isOpenToIntlAssignment: 'Y', employeeName: 'Jane Doe', yrsInIT: 1, visaInfo: [ { visaCountryOfOrigin: [Object], visaNumber: 'asd', visaEntry: 'Single', visaExpiry: '2017-03-16T16:00:00.000Z', visaStatus: 'expired' } ], passportInfo: [ { countryOfOrigin: 'ABC', passportNumber: { 0: '123123123' }, passportExpiry: '2017-03-03' }, { countryOfOrigin: 'DEF', passportNumber: { 0: '321321321', 1: '123123123' }, passportExpiry: '2017-03-08T16:00:00.000Z' }, { countryOfOrigin: 'GHI', passportNumber: { 0: '654654654' }, passportExpiry: '2017-03-10T16:00:00.000Z' } ] }; const flattenPassportNumbers = numbers => Object.keys(numbers).map(key => numbers[key]); const info = employee.passportInfo.map(({passportNumber, passportExpiry, countryOfOrigin}) => flattenPassportNumbers(passportNumber).map(number => [countryOfOrigin, number, passportExpiry] ) ); const flattenLine = ([line]) => line; const joinLine = (line) => line.join('; '); const lines = info.map(flattenLine); console.log(lines.map(joinLine)); console.log(lines.map(joinLine).join('\n'));方法创建ArrayTable

first创建一个包含给定行和列的空表,例如:

create()

second本质上是一个复制构造函数,并复制给定表中的行,列和值:

ArrayTable.create(ImmutableList.of(1, 2, 3), ImmutableList.of('A', 'B', 'C'))