Java 如果满足条件,则复制特定元素
因此,基本上我有一个带有以下示例输入的数组:Java 如果满足条件,则复制特定元素,java,arrays,Java,Arrays,因此,基本上我有一个带有以下示例输入的数组: 10.2 20.8 30.1 28.7 43.7 -10.4 0.0 8.0 30.4 30.0 我只想将大于等于30的元素复制到另一个数组中 这是我目前拥有的代码,但我有点困在如何继续。任何帮助都将不胜感激!双数组reallyWarm是在其上进行复制的数组 Scanner scanner = new Scanner(System.in); double[] temperatu
10.2
20.8
30.1
28.7
43.7
-10.4
0.0
8.0
30.4
30.0
我只想将大于等于30的元素复制到另一个数组中
这是我目前拥有的代码,但我有点困在如何继续。任何帮助都将不胜感激!双数组reallyWarm是在其上进行复制的数组
Scanner scanner = new Scanner(System.in);
double[] temperatures = new double[10];
for (int i = 0; i < 10; i++){
temperatures[i] = scanner.nextDouble();
}
double[] reallyWarm;
您应该使用if temperatures[i]>=30.0来检查大于或等于30.0的元素
试试这个:
double[] reallyWarm;
int t = 0;
for (int i = 0; i < temperatures.length; i++) {
if (temperatures[i] >= 30.0) {
t++; // count elements >= 30.0
}
}
reallyWarm = new double[t];
int j = 0;
for (int i = 0; i < temperatures.length; i++) {
if (temperatures[i] >= 30.0) {
reallyWarm[j] = temperatures[i];
j++;
}
}
System.out.println(Arrays.toString(reallyWarm));
输出:
[30.1, 43.7, 30.4, 30.0]
更新“。。。在每个元素后面有一个新行…':
for(int i=0; i<reallyWarm.length; i++) {
System.out.println(reallyWarm[i]);
}
可以使用for循环遍历数组,并在新行上打印每个元素 如果温度[i]>=30.0,则应使用if来检查大于或等于30.0的元素
试试这个:
double[] reallyWarm;
int t = 0;
for (int i = 0; i < temperatures.length; i++) {
if (temperatures[i] >= 30.0) {
t++; // count elements >= 30.0
}
}
reallyWarm = new double[t];
int j = 0;
for (int i = 0; i < temperatures.length; i++) {
if (temperatures[i] >= 30.0) {
reallyWarm[j] = temperatures[i];
j++;
}
}
System.out.println(Arrays.toString(reallyWarm));
输出:
[30.1, 43.7, 30.4, 30.0]
更新“。。。在每个元素后面有一个新行…':
for(int i=0; i<reallyWarm.length; i++) {
System.out.println(reallyWarm[i]);
}
可以使用for循环遍历数组,并在新行上打印每个元素 使用Java8流:
public void main(String[] args) {
Double arr[] = { 10.2, 20.8, 30.1, -10.4, 30.4, 0.0, 30.0, 43.7 };
List<Double> result = Arrays.asList(arr).stream().filter(k -> k >= 30).collect(Collectors.toList());
System.out.println(result);
}
使用Java8流:
public void main(String[] args) {
Double arr[] = { 10.2, 20.8, 30.1, -10.4, 30.4, 0.0, 30.0, 43.7 };
List<Double> result = Arrays.asList(arr).stream().filter(k -> k >= 30).collect(Collectors.toList());
System.out.println(result);
}
使用JAVA 8及更高版本:
double temperatures[] = { 10.2, 20.8, 30.1, -10.4, 30.4, 0.0, 30.0, 43.7 };
double reallyWarm[] = Arrays.stream(temperatures).filter(d -> d >= 30).toArray();
使用JAVA 8及更高版本:
double temperatures[] = { 10.2, 20.8, 30.1, -10.4, 30.4, 0.0, 30.0, 43.7 };
double reallyWarm[] = Arrays.stream(temperatures).filter(d -> d >= 30).toArray();
如果您只是在学习循环和数组,请使用第一个循环来计算大于30的元素数。然后创建一个长度正确的数组。然后使用第二个循环将大于30的所有元素复制到新数组中。我建议您使用java的集合框架arraylist,因为它可以动态增长。我一定会尝试的,谢谢@JBNizet@编程Boi123如果我的解决方案解决了你的问题,考虑它通过点击左按钮来接受,在那里它将有助于社区中的其他开发者,如果你正在学习循环和数组,那么使用第一个循环来计算元素的数量> 30。然后创建一个长度正确的数组。然后使用第二个循环将大于30的所有元素复制到新数组中。我建议您使用java的集合框架arraylist,因为它可以动态增长。我一定会尝试的,谢谢@JBNizet@编程Boi123如果我的解决方案解决了你的问题,考虑它通过点击左按钮来接受,这将有助于社区中的其他开发者,这很好,但是我真的希望在每一个元素之后都有一个新的行。你可以使用for循环遍历数组并在一个新的行上打印每个元素。更新答案…这很好,但我真的希望在每个元素后面有一条新行。您可以使用for循环遍历数组,并在新行上打印每个元素。正在更新答案。。。