JAVA检查数组是否包含与给定值不同的值

时间:2017-05-31 15:32:24

标签: java

我有一个ArrayList T的声明

ArrayList<Integer> T = new ArrayList<Integer>();

我有一个while循环,它应该是活动的,直到列表只包含-1 int&#39; s。目前它看起来像这样:

 while(T.contains(!-1))

你可能已经猜到了。它不能正常工作,因为我不能对整数使用否定。

4 个答案:

答案 0 :(得分:2)

您可以使用Stream#allMatch

while(!T.stream().allMatch(i -> i == -1)){ // note the ! operator to negate the result
       //do something              
}

这应该保持循环,直到列表将按照您的建议仅由-1整数组成。

答案 1 :(得分:0)

  

但是只有当ENTIRE列表由-1组成时,循环才必须结束。

您可以使用HashSet删除列表中的所有重复元素 如果HashSet对象的大小为1(表示该列表仅包含相同的值),并且列表的第一个元素是-1,则表示该列表仅包含{{1值。

-1

答案 2 :(得分:0)

您可以流式传输列表:

List<Integer> myList = ...;
myList = myList.stream().filter(x -> x < 0).collect(Collectors.toList());
System.out.println(myList);

答案 3 :(得分:0)

如果您想重复检查列表中是否有不是-1的元素,您可以按照以下方式执行以提高效率:

  1. 计算不为-1的元素数量,并将此值存储在(function() { throw new Error; })();
  2. n