我正在编写一个java程序,其中我不想对数组列表元素使用任何循环。下面的Sure程序将在不使用任何循环的情况下将输出从0打印到n,因为ArrayList从AbstractCollection继承了一个带有循环的toString()方法。
import java.util.*;
class withoutloop{
public static void main(String[] args){
Scanner scan = new Scanner(System.in);
ArrayList<Integer> arr = new ArrayList<>();
int n = scan.nextInt();
for(int i=0;i<=n;i++)
arr.add(i);
System.out.println(arr);
}
}
import java.util.*;
class withoutloop{
public static void main(String[] args){
Scanner scan = new Scanner(System.in);
ArrayList<Integer> arr = new ArrayList<>();
int n = scan.nextInt();
int m = scan.nextInt();
int count = 0;
for(int i=0;i<=n;i++)
arr.add(i);
for(int i=2;i<=m;i++){
Iterator it = arr.iterator();
while(it.hasNext()){
Integer element = it.next();
if(element%i==0)
count++;
}
}
System.out.println(count);
}
}
现在,如果我使用这个程序,这将给我大约O(n*m)解,这是我不想要的。是否有任何方法可以访问数组列表中的所有元素而不使用任何循环?
使用IntStream.rangeClosed
,Java 8可以使您的代码更简单,但是如果不设计更智能的算法,您几乎无法避免使用O(n*m)解决方案。
long count = IntStream.rangeClosed(0, n)
.mapToLong(element -> IntStream.rangeClosed(2, m)
.filter(i -> element % i == 0)
.count())
.sum();
System.out.println(count);
在Java 8之前,等效代码类似于:
long count = 0;
for (int element = 0; element <= n; element++) {
for (int i = 2; i <= m; i++) {
if (element % i == 0) {
count++;
}
}
}
System.out.println(count);
我有一个返回字符串的函数。 返回的结果可以是回答,也可以是回答
问题内容: 我一直在寻找一种不用使用collections.sort就可以对数组列表进行排序的方法,因为我自己的逻辑有缺陷,而且我遇到了很多麻烦。 我需要对它进行排序,以便可以使用我创建的一种方法,该方法基本上可以执行collections.swap的工作,以便对数组列表进行完全排序。 这是我的代码: 我对此一直很烦恼。抱歉,这是在伤害社区。 问题答案: 我想,你希望下面的算法:在阵列的其余部分发
我想为android构建一个计算器应用程序,为此我需要一个解析器来转换要求解的字符串表达式。现在Java和Kotlin不支持eval函数,仅仅为了一个操作而导入javascript引擎可能会让我面临各种漏洞。所以我做了自己的计算器解析器。现在它工作得很好,除了crash中的负数外,所有算术运算都工作得很好。我确实知道问题是什么,因为我使用数学符号分隔字符串,但我不能在负值中执行任何操作。 输入:-
我有一个动作执行,其中一个if/fe是如果用户按“A”键,它会将文本设置为不同的内容。程序不是在按“A”后设置文本,而是跳过设置文本并向下移动到下面的if语句。我的问题是,如何让我的程序在我的if语句之前设置文本?我的代码在下面,谢谢!
问题内容: 如何在不使用borders-width的情况下使用CSS给任何元素添加边框? 像在Photoshop中一样,我们可以给笔画-内部,中心和外部 我认为默认的CSS边框属性是中心,如photoshop中的中心,对吗? 我想在框内而不是外面给边框。并且不想在框宽中包含边框宽度。 问题答案: 这不会增加额外的宽度和高度。
假设我有两个数据帧,df1和df2。df1和df2都包含“id”列。我想过滤df1,这样得到的df,df1prime,有 只有在df1中找到的ID 在df2中没有找到所有ID 而不使用任何连接。我该怎么做?返回RDDs而不是DFs会有帮助吗?pyspark和scala响应都受到欢迎。 谢谢! 编辑:我想保留df1中的所有行