Java-通过中的另一个数组安装一个数组



我是Java的初学者,我想做一个这样的程序:我们已经初始化了一个整数数组,我们想知道有多少数字低于5,例如,如果我们有4个数字低于5我们想在输出中得到这个:

4个数字低于5个

这是我的代码,我想它有点接近它,谢谢。

int num[] = {2, 8, 9, 4, 1};
int under[] = {0};

for (int i = 0; i < num.length; i++) {
if (num[i] < 5) {
num[i] = under[i];
System.out.println(num.length + " are under 5");
}
}

您可以使用java8功能。

final List<Integer> integers = Arrays.asList(1, 2, 3, 4, 5);
List<Integer> newList = integers
.stream()
.filter((n) -> n < 5)
.collect(Collectors.toList());
System.out.println(newList.size());

我认为您需要更改一些内容。首先,你需要在For循环之外编写你的输出,否则它每次都会打印这个解决方案。接下来,你应该有一个计数器,计算你在数组中保存一个数字的次数;在"下";。我还将under的长度初始化为"的长度;num";。因为你可能会遇到每个数字都在5以下的情况。

你的代码应该是这样的:

´´

int num[] = {2, 8, 9, 4, 1};
int under[] = new int [num.length];
int count = 0;
for (int i = 0; i < num.length; i++) {
if (num[i] < 5){
under[count] = num[i];
count++;
}
}

System.out.println(count + " are under 5");

´´

可能有更简单的方法来解决它,甚至可能没有计数器。

我在这里找到的所有答案显然都是正确的,即使我不明白为什么每个人都把在另一个数组中找到的数字保存起来,而不仅仅是计数。。。

无论如何,我写这篇文章是为了建议你用另一种方法做同样的事情,当然不会比你已经读过的其他方法更快,但我相信你可以用它来学习一些东西:

int [] num = {3,5,7,8,2,3,4,1,6,7,8,2,4,3}
Arrays.sort(num);
System.out.printf("There are %d numbers lower then 5", Math.max(0,Arrays.binarySearch(num, 5)));

最新更新