第一道题 用 springboot 调用 elasticsearch 的原生 api 实现索引文档的增删改查 第二道题 实现 map 的扁平化
今天的复试题,面试官出了这两道题要求我明天下午四点之前实现出来,可是我对这两道题毫无头绪,里面涉及的技术点我大多都只是听过并没有怎么使用过[捂脸]所以我想求助各位前辈
![]() | 1 kop1989 2019-12-26 18:56:57 +08:00 via iPhone map 的扁平化是不是就是遍历 map 的所有 value... |
![]() | 2 feigle 2019-12-26 18:59:38 +08:00 不好意思,我就是那个面试官,你看着办吧 |
![]() | 3 floraX 2019-12-26 19:00:36 +08:00 不好意思,我就是那个面试官,你看着办吧 |
![]() | 4 binnerchen 2019-12-26 19:01:02 +08:00 google |
5 JohnDoeChou 2019-12-26 19:01:03 +08:00 不好意思,我就是那个面试官,你看着办吧 |
![]() | 6 luckyrayyy 2019-12-26 19:01:31 +08:00 springboot 和 elk 都一点没用过吗?没有的话换下一家吧。 |
7 hebin 2019-12-26 19:01:32 +08:00 第一道题就是说你要提供几个接口能够对于 es 进行增删该查,所以你首先应该去看文档 了解如何使用 Java 操作 es,然后了解 Spring mvc 怎么提供 API。 什么是 map 的扁平化? |
![]() | 9 everydiao OP @luckyrayyy 之前用的 springmvc |
![]() | 10 akmissxt 2019-12-26 19:09:18 +08:00 via Android 做题前要了解出题者的意图。面试官要的不是答案啊。 |
![]() | 11 Allianzcortex 2019-12-26 19:10:53 +08:00 via iPhone map 的扁平化就是 flatten map |
![]() | 12 everydiao OP @hebin 谢谢前辈!第二题给了我一个具体要求 ### 算法题: 要求:Map 扁平化 #### 示例 ```json { "portInfo":{ "protocol":"http", "port":80, "deviceInfo":{ "deviceLocation":{ "zhCountry":"中国", "zhCity":"北京" }, "deviceCategory":"RSS", "deviceType":"Router" } } } ``` 最终要求实现 3 个函数 1.flat >> 返回: ```json { "portInfo.protocol":"http", "portInfo.port":80, "portInfo.deviceInfo.deviceLocation.zhCountry":"中国", "portInfo.deviceInfo.deviceLocation.zhCity":"北京", "portInfo.deviceInfo.deviceCategory":"RSS", "portInfo.deviceInfo.deviceType":"Router" } ``` 2.flatPut 3.flatGet |
![]() | 13 everydiao OP @akmissxt 我没有接触过这些,所以没有什么太好的思路,看不懂他在考察什么,今天查了一天的资料勉强用 springboot 实现了第一题的功能,但是面试官说要调用 es 的原生 api 而不是 springboot 封装的 api |
![]() | 14 Allianzcortex 2019-12-26 19:22:05 +08:00 ![]() 第二道题的 flatten *** 是一类题目(e.g. https://leetcode.com/problems/flatten-nested-list-iterator/),迭代递归判定每一个 key 对应的 value instanceof 是 string 还是 map。 |
![]() | 15 tonytonychopper 2019-12-26 19:23:44 +08:00 我知道的「扁平化」是「降维」操作,跑一下递归就行了,不知道跟你这个是不是一样的。 |
![]() | 16 f1ren2es 2019-12-26 19:24:35 +08:00 flatten map 随便 google 一下不就有了,慌啥,遇到笔试做 OJ 才是真绝望 |
![]() | 17 everydiao OP @Allianzcortex 谢谢您有点思路了 |
![]() | 18 yincrow 2019-12-26 19:37:22 +08:00 elk 可以直接 http 请求 RESTFUL 接口,简单啊 |
![]() | 19 werty 2019-12-26 19:58:42 +08:00 第一题我理解面试官是想给做成一个动态代理模式的玩意, 而不是一个接口一个接口的去写, 毕竟 ES 的接口还是挺多的 |
21 Justin13 2019-12-26 20:39:14 +08:00 via Android 扁平化还不简单,递归遍历撸一遍就出来了。 |
22 nxtxiaolong 2019-12-26 21:03:01 +08:00 这行不适合你,找找其他出路吧 |
![]() | 23 rizon 2019-12-26 21:41:01 +08:00 |
![]() | 24 cccy0 2019-12-27 10:50:50 +08:00 调用 es 接口直接发 http 请求就可以了啊, 可以看下 es 官方的 rest low level client 源码, 里面没多少东西 |