【问题标题】:Remove a duplicated array element but getting some error [duplicate]删除重复的数组元素但出现一些错误 [重复]
【发布时间】:2022-01-05 19:44:22
【问题描述】:

当代码流到达 removeIf() 逻辑时,代码中断并且它不返回任何内容,就好像它是一个 lang 错误一样。 请尽可能使用相同的代码逻辑。

public static SalmonSumario[] filterSummario(SalmonSumario[] salmon){
  Set<String> filter = new TreeSet<>();
  
  List<SalmonSumario> salmonSum = Arrays.asList(salmon);
  
  salmonSum.removeIf(array -> !filter.add(array.getSalmonNumber()));
  
  return salmonSum.toArray(new SalmonSumario[0]);
}

【问题讨论】:

  • @Alias Cartellano 他们说Please use the same code logic if possibledistinct() 不适用于删除不同的属性。
  • TBH 我链接的副本解释了这个“问题”的原因,但这里没有提出真正的问题。如果您不只是想了解为什么会出现错误,那么欢迎对您正在尝试做的事情进行清晰的描述并提供清晰的错误消息(尽管我认为它与副本中的异常相同)。 “如果可能,请使用相同的代码逻辑”并不是对您的要求的非常清楚的描述。
  • @DidierL 你是对的,刚刚审查并尝试了你的建议,它奏效了。如果您愿意,请尝试写一个答案,以便我将其标记为答案。谢谢朋友。
  • 标记重复的目的是为了避免多次写相同的东西????请注意,我认为您的方法不一定是最好/最有效的(取决于您的要求),但改进它可能更适合Code Review

标签: java arrays lambda duplicates lang


【解决方案1】:

Arrays.asList() 返回的列表是固定长度的,所以你不能添加或删除元素,因此你必须用new ArrayList&lt;&gt;(Arrays.asList(salmon)) 包装它

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-03-22
    • 2013-05-20
    • 2013-03-23
    • 2017-09-04
    • 1970-01-01
    相关资源
    最近更新 更多