我有一个ArrayList T的声明
ArrayList<Integer> T = new ArrayList<Integer>();
我有一个while循环,它应该是活动的,直到列表只包含-1 int&#39; s。目前它看起来像这样:
while(T.contains(!-1))
你可能已经猜到了。它不能正常工作,因为我不能对整数使用否定。
答案 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的元素,您可以按照以下方式执行以提高效率:
(function() { throw new Error; })();
n