[英]Integers in array Java
我有一个包含 [45,8,50,15,65,109,2] 的数组。 我想检查数组的零元素是否大于我的第一个元素。
如果 ( 45 > 8) 那么我想将 45 添加到全新的子数组中。
我想继续检查我的数组是否大于 45 并将其添加到新的子数组中。 新的子数组必须以添加的方式保留添加的数字。结果应该是 [45,50,65,109]
我认为通过创建它是朝着正确的方向发展,但我做错了什么,所以请帮忙。
int[] x = [45,8,50,15,65,109,2];
int[] sub = null;
for(int i = 0; i > x.length; i++) {
for(int k = 0; k > x.length; k++) {
if(x[i] > x[k]){
sub = i;
先说第一件事。 您的问题包含一些错误。
你应该写int[] x = {45,8,50,15,65,109,2};
而不是int[] x = [45,8,50,15,65,109,2];
你不能用[]
来初始化数组!
for(int i = 0; i > x.length; i++)
是什么意思。 你的程序不能运行! 因为, i
的值小于x.langth
。 第一个条件检查是假的,所以循环不起作用!
for(int k = 0; k > x.length; k++)
你想如何在没有索引的数组中存储值? 你必须写sub[i] = x[i];
在这里, i
意思是你想在哪里存储什么索引值!
最后,你想做sorting
吗? 如果是,那么您需要另一个名为temp
变量表示temporary
!
尝试清除基本,然后尝试此代码。 排序链接
祝你好运!
如果您试图获取大于第 0 个元素的所有内容。
使用以下内容:
普通的旧Java代码:
int[] x = {45,8,50,15,65,109,2}; int[] sub = new int[x.length]; int first = x[0]; sub[0]=first; int index=1; for(int i = 1; i < x.length; i++) { if(x[i] > first){ sub[index]=x[i]; index++; }}
流API:
int[] x = {45, 8, 50, 15, 65, 109, 2};
int[] sub = Arrays.stream(x).filter(number -> number>= x[0]).toArray();
其中 stream() 正在将数组转换为流,过滤器正在应用所需的条件,然后再次转换为数组来结束它。
可以使用 Java 8 Stream API 过滤输入数组:
int[] x = {45, 8, 50, 15, 65, 109, 2};
int[] sub = Arrays.stream(x)
.filter(n -> n >= x[0])
.toArray();
System.out.println(Arrays.toString(sub));
输出:
[45, 50, 65, 109]
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.