b*********n 发帖数: 26 | 1 面了几次电面, 感觉java这个语言真是吃亏
一个很简单的事情要写的很繁琐。
不过也有可能是有一些syntax suger我还不知道?发到版上了大家讨论讨论。
比如这道题目。
写一个2 dimensional array 的 iterator。
要有基本的 next, hasnext, remove function.
就讨论remove function,当需要从二位数组中remove一个element的时候:
如果用python写,那就太简单了,就直接用pop 就好
但在java 里,input 是一个 int[][], 因为java的 primary type array 不支持
remove 操作,就只能先把那一行的array 转化成List, 在删掉对应index上
的值,再把List 转回array, 再把这个array放回原来的2d array 里面。
还有什么更好的方法么? | t**r 发帖数: 3428 | 2 所以我认识好几个只会python的人进了狗狗 c++,java大牛倒是没拿到 | D*******a 发帖数: 3688 | 3 when I interview people I allow them to use ArrayList
【在 b*********n 的大作中提到】 : 面了几次电面, 感觉java这个语言真是吃亏 : 一个很简单的事情要写的很繁琐。 : 不过也有可能是有一些syntax suger我还不知道?发到版上了大家讨论讨论。 : 比如这道题目。 : 写一个2 dimensional array 的 iterator。 : 要有基本的 next, hasnext, remove function. : 就讨论remove function,当需要从二位数组中remove一个element的时候: : 如果用python写,那就太简单了,就直接用pop 就好 : 但在java 里,input 是一个 int[][], 因为java的 primary type array 不支持 : remove 操作,就只能先把那一行的array 转化成List, 在删掉对应index上
| u******d 发帖数: 166 | | b*********n 发帖数: 26 | 5 用ArrayList是可以直接remove 了, 我面试时就是这么干的。
但是又有一个问题:
写test case的时候,如果用int[][] , initialize 只需要:
int[][] t = {{1, 1, 1, 1}, {0, 1, 6}, {1}};
但是用ArrayList> , 我就得:
ArrayList> t2 = new ArrayList>();
ArrayList r0 = new ArrayList(Arrays.asList(1,1,1,1));
ArrayList r1 = new ArrayList(Arrays.asList(0,1,6));
ArrayList r2 = new ArrayList(Arrays.asList(1));
t2.add(r0);
t2.add(r1);
t2.add(r2);
或者java里有什么简单的方式初始化二维ArrayList ?
【在 D*******a 的大作中提到】 : when I interview people I allow them to use ArrayList
| b*****n 发帖数: 618 | 6 不赞同。。
其实用顺手了哪个都行
不过这个题目如果按照这个要求的话不太适合用Java | c*******t 发帖数: 123 | 7 c++11 (或者c++14?不确定)
可以
vector>={ {},{},{} }.
还可以 vector>>={ { {}, {} }, { {}, { }}, { {}, {}} }
【在 b*********n 的大作中提到】 : 用ArrayList是可以直接remove 了, 我面试时就是这么干的。 : 但是又有一个问题: : 写test case的时候,如果用int[][] , initialize 只需要: : int[][] t = {{1, 1, 1, 1}, {0, 1, 6}, {1}}; : 但是用ArrayList> , 我就得: : ArrayList> t2 = new ArrayList>(); : ArrayList r0 = new ArrayList(Arrays.asList(1,1,1,1)); : ArrayList r1 = new ArrayList(Arrays.asList(0,1,6)); : ArrayList r2 = new ArrayList(Arrays.asList(1)); : t2.add(r0);
| c*******t 发帖数: 123 | 8 不过java面试比c++占便宜多了。
c++ 指针,指针的指针,内存泄露,smart pointer, 继承,多态,overloading,
overriding, virtual function.....
各种各样的陷阱, 短时间内根本不能掌握。
羁的骚年) 的大作中提到: 】
【在 b*********n 的大作中提到】 : 用ArrayList是可以直接remove 了, 我面试时就是这么干的。 : 但是又有一个问题: : 写test case的时候,如果用int[][] , initialize 只需要: : int[][] t = {{1, 1, 1, 1}, {0, 1, 6}, {1}}; : 但是用ArrayList> , 我就得: : ArrayList> t2 = new ArrayList>(); : ArrayList r0 = new ArrayList(Arrays.asList(1,1,1,1)); : ArrayList r1 = new ArrayList(Arrays.asList(0,1,6)); : ArrayList r2 = new ArrayList(Arrays.asList(1)); : t2.add(r0);
| e***i 发帖数: 231 | 9 Python面试曾经遇到过不让用现成的method,要求用primitive操作implement的。
面试员有时候故意的,就是非要拧着来:
C++的让你写web socket
Java的让你搞File IO和Patten Match
Python的让你搞Bitwise Operation
Scala的让你写Loop
Javascript搞CPU intense的数值计算
Ruby要求Thread Safe
Perl要求Maintainable
遇到这些情况礼节性回复然后礼貌地离开
【在 b*********n 的大作中提到】 : 面了几次电面, 感觉java这个语言真是吃亏 : 一个很简单的事情要写的很繁琐。 : 不过也有可能是有一些syntax suger我还不知道?发到版上了大家讨论讨论。 : 比如这道题目。 : 写一个2 dimensional array 的 iterator。 : 要有基本的 next, hasnext, remove function. : 就讨论remove function,当需要从二位数组中remove一个element的时候: : 如果用python写,那就太简单了,就直接用pop 就好 : 但在java 里,input 是一个 int[][], 因为java的 primary type array 不支持 : remove 操作,就只能先把那一行的array 转化成List, 在删掉对应index上
| c*****e 发帖数: 3226 | 10 你不知道有个东东叫 guava?
【在 b*********n 的大作中提到】 : 面了几次电面, 感觉java这个语言真是吃亏 : 一个很简单的事情要写的很繁琐。 : 不过也有可能是有一些syntax suger我还不知道?发到版上了大家讨论讨论。 : 比如这道题目。 : 写一个2 dimensional array 的 iterator。 : 要有基本的 next, hasnext, remove function. : 就讨论remove function,当需要从二位数组中remove一个element的时候: : 如果用python写,那就太简单了,就直接用pop 就好 : 但在java 里,input 是一个 int[][], 因为java的 primary type array 不支持 : remove 操作,就只能先把那一行的array 转化成List, 在删掉对应index上
| | | b*********n 发帖数: 26 | 11 可是面试的时候要现场跑过,电面要在网上跑过,没法用guava啊。
【在 c*****e 的大作中提到】 : 你不知道有个东东叫 guava?
| c*****e 发帖数: 3226 | 12 这种地方不去也罢。。。
【在 b*********n 的大作中提到】 : 可是面试的时候要现场跑过,电面要在网上跑过,没法用guava啊。
| S**********5 发帖数: 896 | | D*******a 发帖数: 3688 | 14 you should pick your language based on the question asked, not before
【在 e***i 的大作中提到】 : Python面试曾经遇到过不让用现成的method,要求用primitive操作implement的。 : 面试员有时候故意的,就是非要拧着来: : C++的让你写web socket : Java的让你搞File IO和Patten Match : Python的让你搞Bitwise Operation : Scala的让你写Loop : Javascript搞CPU intense的数值计算 : Ruby要求Thread Safe : Perl要求Maintainable : 遇到这些情况礼节性回复然后礼貌地离开
| f******n 发帖数: 198 | 15 那你觉得如果你用python写个pop(),面试官就会放过你了?还不是一样要问你pop是怎
么实现的,cost多少,如果讲不清楚死得更难看。
【在 b*********n 的大作中提到】 : 面了几次电面, 感觉java这个语言真是吃亏 : 一个很简单的事情要写的很繁琐。 : 不过也有可能是有一些syntax suger我还不知道?发到版上了大家讨论讨论。 : 比如这道题目。 : 写一个2 dimensional array 的 iterator。 : 要有基本的 next, hasnext, remove function. : 就讨论remove function,当需要从二位数组中remove一个element的时候: : 如果用python写,那就太简单了,就直接用pop 就好 : 但在java 里,input 是一个 int[][], 因为java的 primary type array 不支持 : remove 操作,就只能先把那一行的array 转化成List, 在删掉对应index上
| q*c 发帖数: 9453 | 16 你要用现成的系统库函数,还要你干啥,小学生都行。
面试的时候就是要你从头实现,看你理解不。
【在 b*********n 的大作中提到】 : 面了几次电面, 感觉java这个语言真是吃亏 : 一个很简单的事情要写的很繁琐。 : 不过也有可能是有一些syntax suger我还不知道?发到版上了大家讨论讨论。 : 比如这道题目。 : 写一个2 dimensional array 的 iterator。 : 要有基本的 next, hasnext, remove function. : 就讨论remove function,当需要从二位数组中remove一个element的时候: : 如果用python写,那就太简单了,就直接用pop 就好 : 但在java 里,input 是一个 int[][], 因为java的 primary type array 不支持 : remove 操作,就只能先把那一行的array 转化成List, 在删掉对应index上
| b**********5 发帖数: 7881 | 17 actually, a good eperienced programmer is to know if there's a good existing
library...
【在 q*c 的大作中提到】 : 你要用现成的系统库函数,还要你干啥,小学生都行。 : 面试的时候就是要你从头实现,看你理解不。
| w*********l 发帖数: 1337 | 18 experienced是。good且experienced,是知道library存在,且不存在的时候随时可以
自己写一个出来。
existing
【在 b**********5 的大作中提到】 : actually, a good eperienced programmer is to know if there's a good existing : library...
| V*********r 发帖数: 666 | 19 我面试就是以python为主,C为辅,根据具体题目而定。 | k***e 发帖数: 1931 | 20 你用C试试看?
【在 b*********n 的大作中提到】 : 面了几次电面, 感觉java这个语言真是吃亏 : 一个很简单的事情要写的很繁琐。 : 不过也有可能是有一些syntax suger我还不知道?发到版上了大家讨论讨论。 : 比如这道题目。 : 写一个2 dimensional array 的 iterator。 : 要有基本的 next, hasnext, remove function. : 就讨论remove function,当需要从二位数组中remove一个element的时候: : 如果用python写,那就太简单了,就直接用pop 就好 : 但在java 里,input 是一个 int[][], 因为java的 primary type array 不支持 : remove 操作,就只能先把那一行的array 转化成List, 在删掉对应index上
|
|