Redian新闻
>
请教一个函数默认返回值的问题,纠结很久了
avatar
请教一个函数默认返回值的问题,纠结很久了# JobHunting - 待字闺中
c*t
1
在多次面试的online coding里都遇到这种情况,当实现一个返回值为int的搜索函数时
,有时会在if语句里判断是否符合搜索条件,如果符合即返回。但问题是,函数的
default返回值该怎样设,如果是搜索对象是数组下标,当然可以返回-1。但如果让返
回搜索的元素,该怎样解决呢?
举个例子,下面是一个用hashMap找数组里出现奇数次元素的代码(没测试):
public int findOdd(int[] arr){
HashMap map = new HashMap();
for(int i = 0; iif(map.get(arr[i])==null)
map.put(arr[i],1);
else{
map.put(arr[i],map.get(arr[i])+1);
}
}
for(Map.Entry item:map){
if(item.getValue()%2==1)
return item.getKey();
}
}
return ?;
}
应该是个挺简单的问题,但每次临场写代码时总会撞到这个死胡同里,所以想请教下大
家,多谢了!
avatar
h*n
2
返回null

【在 c******t 的大作中提到】
: 在多次面试的online coding里都遇到这种情况,当实现一个返回值为int的搜索函数时
: ,有时会在if语句里判断是否符合搜索条件,如果符合即返回。但问题是,函数的
: default返回值该怎样设,如果是搜索对象是数组下标,当然可以返回-1。但如果让返
: 回搜索的元素,该怎样解决呢?
: 举个例子,下面是一个用hashMap找数组里出现奇数次元素的代码(没测试):
: public int findOdd(int[] arr){
: HashMap map = new HashMap();
: for(int i = 0; i: if(map.get(arr[i])==null)
: map.put(arr[i],1);

avatar
c*t
3
多谢回复!
但返回null会报错啊(Type mismatch: cannot convert from null to int),除非cast
成(int)null,感觉很奇怪。。。

【在 h****n 的大作中提到】
: 返回null
avatar
h*n
4
一般都是object array吧。如果是int array return index is good enough...

cast

【在 c******t 的大作中提到】
: 多谢回复!
: 但返回null会报错啊(Type mismatch: cannot convert from null to int),除非cast
: 成(int)null,感觉很奇怪。。。

avatar
l*a
5
int/Integer混用是什么技巧?

【在 c******t 的大作中提到】
: 在多次面试的online coding里都遇到这种情况,当实现一个返回值为int的搜索函数时
: ,有时会在if语句里判断是否符合搜索条件,如果符合即返回。但问题是,函数的
: default返回值该怎样设,如果是搜索对象是数组下标,当然可以返回-1。但如果让返
: 回搜索的元素,该怎样解决呢?
: 举个例子,下面是一个用hashMap找数组里出现奇数次元素的代码(没测试):
: public int findOdd(int[] arr){
: HashMap map = new HashMap();
: for(int i = 0; i: if(map.get(arr[i])==null)
: map.put(arr[i],1);

avatar
S*e
6
"找数组里出现奇数次元素的代码"
不是应该返回一个数组或集合吗?出现奇数次元素可能不只一个。貌似函数的返回值定
义不恰当。要么抛出异常,如果找不到。

【在 c******t 的大作中提到】
: 在多次面试的online coding里都遇到这种情况,当实现一个返回值为int的搜索函数时
: ,有时会在if语句里判断是否符合搜索条件,如果符合即返回。但问题是,函数的
: default返回值该怎样设,如果是搜索对象是数组下标,当然可以返回-1。但如果让返
: 回搜索的元素,该怎样解决呢?
: 举个例子,下面是一个用hashMap找数组里出现奇数次元素的代码(没测试):
: public int findOdd(int[] arr){
: HashMap map = new HashMap();
: for(int i = 0; i: if(map.get(arr[i])==null)
: map.put(arr[i],1);

相关阅读
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。