给定是一个列表,其中包含1-20之间的所有2个数字(随机排序).我需要找到那两个数字.
这是我提出的(工作)计划:
public static void main(String[] args) {
int[] x= {1,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19};
ArrayList al= new ArrayList();
Map map= new HashMap();
for(int i=0;i<x.length;i++)
{
map.put(x[i], x[i]);
}
for(int i=1;i<=20;i++)
{
if(map.get(i)==null)
al.add(i);
}
for(int i=0;i<al.size();i++)
{
System.out.println(al.get(i));
}
}
Run Code Online (Sandbox Code Playgroud)
我想从性能的角度(内存和bigO(n))知道程序是否良好?
def loop2 (arr: List[String]) : List[String]= {
arr.map(ele =>
if (ele.startsWith("2")) ele)
}
Run Code Online (Sandbox Code Playgroud)
我认为该方法应该返回一个List [String],但编译器说它应该返回List [Any].
映射中的匿名函数可以返回String或什么都不是,这意味着输出可以是空列表或List [String].
请解释为什么返回类型应为List [Any]