一亩三分地论坛

 找回密码
 获取更多干货,去instant注册!

一亩三分地官方iOS手机应用下载
查看: 3973|回复: 23
收起左侧

Uber电面

[复制链接] |试试Instant~ |关注本帖
psychiatrichwj 发表于 2015-8-29 07:51:19 | 显示全部楼层 |阅读模式

2015(7-9月) 码农类 硕士 全职@Uber - 内推 - 技术电面 |Passfresh grad应届毕业生

注册一亩三分地论坛,查看更多干货!

您需要 登录 才可以下载或查看,没有帐号?获取更多干货,去instant注册!

x
之前以为会遇到算法题,没想到是一题OOD 不过还好是水题.鐣欏璁哄潧-涓浜-涓夊垎鍦
设计一个EventListener要求实现register unregister 和 post 方法. 鐗涗汉浜戦泦,涓浜╀笁鍒嗗湴
写了10分钟就水过了

评分

1

查看全部评分

xujun 发表于 2015-8-29 08:07:45 | 显示全部楼层
关注一亩三分地公众号:
Warald_一亩三分地
答的很好诶~~学习了!!
回复 支持 反对

使用道具 举报

bluezebra 发表于 2015-8-29 08:11:27 | 显示全部楼层
关注一亩三分地微博:
Warald
楼上这回复是复制粘贴的么。。答的好在哪。。
回复 支持 反对

使用道具 举报

hulahu 发表于 2015-8-29 08:46:31 | 显示全部楼层
求楼主说说EventListener
回复 支持 反对

使用道具 举报

swly 发表于 2015-8-29 09:01:24 | 显示全部楼层
bluezebra 发表于 2015-8-29 08:11. 涓浜-涓夊垎-鍦帮紝鐙鍙戝竷
楼上这回复是复制粘贴的么。。答的好在哪。。

10分钟就过了,不好说不过去
求职神器indeed - 在全球最大的求职网站找找适合你的工作?
回复 支持 反对

使用道具 举报

yannan 发表于 2015-8-29 09:05:49 | 显示全部楼层
lz是今天面的嘛,请问lz面的是什么组
回复 支持 反对

使用道具 举报

wenqiang88 发表于 2015-8-29 10:05:33 | 显示全部楼层
请问LZ能细讲一下实现吗?
回复 支持 反对

使用道具 举报

 楼主| psychiatrichwj 发表于 2015-8-29 10:16:57 | 显示全部楼层
yannan 发表于 2015-8-29 09:05
lz是今天面的嘛,请问lz面的是什么组

嗯 今天面的 我也不知道是什么组。。。。
回复 支持 反对

使用道具 举报

 楼主| psychiatrichwj 发表于 2015-8-29 10:18:54 | 显示全部楼层
wenqiang88 发表于 2015-8-29 10:05
请问LZ能细讲一下实现吗?

就是一个HashMap<String, List<Event>>然后函数是这样的

public void register(String eventName, Event event) {};
public void unregister(String eventName, Event event){};
public void postEvent(String eventName, Object Data){};. From 1point 3acres bbs

public class Event {
  public void doEvent(Object data);-google 1point3acres
}
. From 1point 3acres bbs
就用HashMap去做就好了 很简单的。
回复 支持 反对

使用道具 举报

wenqiang88 发表于 2015-8-29 10:30:49 | 显示全部楼层
psychiatrichwj 发表于 2015-8-29 10:18
就是一个HashMap然后函数是这样的

public void register(String eventName, Event event) {};

多谢LZ指点,祝好运
回复 支持 反对

使用道具 举报

 楼主| psychiatrichwj 发表于 2015-8-29 10:56:01 | 显示全部楼层
hulahu 发表于 2015-8-29 08:46. 鐗涗汉浜戦泦,涓浜╀笁鍒嗗湴
求楼主说说EventListener

下面说了
回复 支持 反对

使用道具 举报

 楼主| psychiatrichwj 发表于 2015-8-29 10:56:37 | 显示全部楼层
wenqiang88 发表于 2015-8-29 10:30
多谢LZ指点,祝好运

thx!~~~~~
回复 支持 反对

使用道具 举报

mmliu 发表于 2015-8-31 07:28:51 | 显示全部楼层
为啥感觉一般都是在 Object 下注册 listener 呢,比如 android 里面的一个 button,可以注册 setOnClickListener 事件,button 被 click 之后,就会呼叫 clickListener,触发相应的注册事件。
  1. class Button{
  2.   Map<String, List<Listener>> listenerMap;

  3.   clicked(){
  4.     for(Listener listener : listenerMap.get("click")){
  5.         listener.clicked();. from: 1point3acres.com/bbs
  6.     }
  7.   }
  8. }
复制代码
所以是在 Object 下记录 listener, 而非在 listener 下记录 event 事件
回复 支持 反对

使用道具 举报

jiebour 发表于 2015-8-31 08:24:27 | 显示全部楼层
前台的还是后台的。。。。
回复 支持 反对

使用道具 举报

 楼主| psychiatrichwj 发表于 2015-8-31 08:51:46 | 显示全部楼层
mmliu 发表于 2015-8-31 07:28
为啥感觉一般都是在 Object 下注册 listener 呢,比如 android 里面的一个 button,可以注册 setOnClickLis ...

对 我一开始也很疑惑 问他 event name 和 listener 的对应关系,但是她把要写的函数框架给好了 所以就没多想了
回复 支持 反对

使用道具 举报

 楼主| psychiatrichwj 发表于 2015-8-31 09:00:13 | 显示全部楼层
jiebour 发表于 2015-8-31 08:24
前台的还是后台的。。。。
. visit 1point3acres.com for more.
不知道 面我的人是做 ios 的 但是我当时找学长内推的时候顺序是 mobile web devops 我也不知道最后推了啥 挺有可能是做 mobile 吧
回复 支持 反对

使用道具 举报

dobestdobest 发表于 2015-8-31 14:20:22 | 显示全部楼层
请问,是下面这个意思吗?
  1. import java.io.*;-google 1point3acres
  2. import java.util.*;

  3. class Solution {
  4.   public static void main(String[] args) {
  5.   }. From 1point 3acres bbs
  6. }
  7. .鐣欏璁哄潧-涓浜-涓夊垎鍦
  8. class EventListener {
  9.   private Map<String, List<Event>> map;
  10.    鏉ユ簮涓浜.涓夊垎鍦拌鍧.
  11.   public EventListener() {
  12.     map = new HashMap<String, List<Event>>();
  13.   }
  14.   
  15.   public void register(String eventName, Event event) {
  16.     if (map.containsKey(eventName)) {
  17.       map.get(eventName).add(event);
  18.     } else {
  19.       List<Event> events = new ArrayList<Event>();
  20.       events.add(event);. visit 1point3acres.com for more.
  21.       map.put(eventName, events);
  22.     }
  23.   };
  24.   
  25.   public void unregister(String eventName, Event event) {
  26.     if (map.containsKey(eventName)) {
  27.       map.get(eventName).remove(event);
  28.     }
  29.   };
  30.   
  31.   public void postEvent(String eventName, Object Data) {. 鐣欏鐢宠璁哄潧-涓浜╀笁鍒嗗湴
  32.     Event event = new Event();
  33.     event.doEvent(Data);
  34.     this.register(eventName, event);. 涓浜-涓夊垎-鍦帮紝鐙鍙戝竷
  35.   };. 涓浜-涓夊垎-鍦帮紝鐙鍙戝竷
  36. }

  37. class Event {.1point3acres缃
  38.   private Object data;
  39.   
  40.   public void doEvent(Object data) {
  41.     this.data = data;
    . more info on 1point3acres.com
  42.   };
  43. }
复制代码
回复 支持 反对

使用道具 举报

 楼主| psychiatrichwj 发表于 2015-9-1 03:15:33 | 显示全部楼层
dobestdobest 发表于 2015-8-31 14:20
请问,是下面这个意思吗?
. 鐣欏鐢宠璁哄潧-涓浜╀笁鍒嗗湴
差不多 要考虑输入的有效性 然后 post event 是指对所有该 event 的 listener 都 doEvent
回复 支持 反对

使用道具 举报

blackrose 发表于 2016-6-6 07:52:09 | 显示全部楼层
No Multithread concern?
回复 支持 反对

使用道具 举报

本版积分规则

请点这里访问我们的新网站:一亩三分地Instant.

Instant搜索更强大,不扣积分,内容组织的更好更整洁!目前仍在beta版本,努力完善中!反馈请点这里

关闭

一亩三分地推荐上一条 /5 下一条

手机版|小黑屋|一亩三分地论坛声明 ( 沪ICP备11015994号 )

custom counter

GMT+8, 2017-3-27 23:53

Powered by Discuz! X3

© 2001-2013 Comsenz Inc. Design By HUXTeam

快速回复 返回顶部 返回列表