【问题标题】:How to return specific values in an array?如何返回数组中的特定值?
【发布时间】:2017-02-10 07:25:44
【问题描述】:

简单地说,我有一组这样的数字。

int targetNumber = 8;

int[] n = new int[4];
n[0] = 2;
n[1] = 4;
n[2] = 8;
n[3] = 16;

现在,我正在尝试返回 3 个数字。

例如,由于n[2]等于targetNumber,我想返回n[0]n[1]n[3]

有什么方法可以做到这一点?

【问题讨论】:

  • 您只能返回一个对象或原语。例如,您可以使用所需的值返回一个较小的数组,或者使用相关字段定义一个对象,然后设置这些字段并返回该对象。

标签: java arrays


【解决方案1】:

您可以使用接口Stream

Arrays.stream(n)
.filter(value -> value != targetNumber)
.limit(3)/*if you want to print only the first three results*/
.forEach(System.out::println);

【讨论】:

  • 谢谢,我最近开始学习Java流,这个答案对我很有帮助。
【解决方案2】:

你可以用经典的方式来做:

for (int i : n) {
    if (i != targetNumber)
        System.out.println(i);
}

输出将是 n[0]n[1]n[3]

2
4
16

【讨论】:

  • 我以为问题只有三个数字 :)
  • @Dev.Joel 你的回答是有效的我认为它可能对 OP 来说过于复杂,我喜欢流,但也许 OP 对流还没有足够的了解。不管怎样,我也给你投票。我也认为他的意思是 3 剩下 4 的数字
  • 问题的焦点也可能是返回 3 个项目,因为数组是 4。我理解返回 3 个项目通常等于他的回答被接受,因为这是他想要的 OP。好的
  • 我同意,但我认为这仍然是 OP 没有得到它的唯一原因,因为对他/她来说,了解与你的任何愉快聊天都是新事物。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-10-02
  • 1970-01-01
  • 1970-01-01
  • 2020-02-10
  • 2016-01-14
  • 2017-10-18
  • 2011-07-30
相关资源
最近更新 更多