第一道题 用 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 1
第二道题的 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 源码, 里面没多少东西
|