繁体   English   中英

Java数组中的整数

[英]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;

先说第一件事。 您的问题包含一些错误。

  1. 你应该写int[] x = {45,8,50,15,65,109,2}; 而不是int[] x = [45,8,50,15,65,109,2]; 你不能用[]来初始化数组!

  2. for(int i = 0; i > x.length; i++)是什么意思。 你的程序不能运行! 因为, i的值小于x.langth 第一个条件检查是假的,所以循环不起作用!

  3. for(int k = 0; k > x.length; k++)

  4. 你想如何在没有索引的数组中存储值? 你必须写sub[i] = x[i]; 在这里, i意思是你想在哪里存储什么索引值!

  5. 最后,你想做sorting吗? 如果是,那么您需要另一个名为temp变量表示temporary

尝试清除基本,然后尝试此代码。 排序链接

祝你好运!

如果您试图获取大于第 0 个元素的所有内容。

使用以下内容:

  1. 普通的旧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++; }}
  2. 流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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM