2014-03-26 103 views
-2

这是返回false .... IM期待真正Java List containsAll返回false?

List<String> listA // [941, 946, 940, 942] 
List<String> listB //[941, 942, 940, 946,888, 466, 777] 

listB.containsAll(listA) //FALSE ?? 
+1

是空白准确吗? –

+0

它是一个用逗号分隔的字符串列表.... whitespace正好在注释 –

+0

的右边,但是你的字符串没有引号,所以我想知道是否空格被认为是字符串的一部分。 –

回答

1

false结果意味着在listA有些值没有在listB相应的(等于)值。这可能是由一些不必要的空格造成的。你需要知道,

"foo".equals(" foo") 

将返回false这意味着使用的值不相等的,因为空间也算字符。


如果每个字符串格式正确,您提供的示例数据就可以正常工作。

import java.util.Arrays; 
import java.util.List; 

public class Test { 
    public static final void main(String[] ignored) { 
    List<String> listA = Arrays.asList(new String[]{"941", "946", "940", "942"}); 
    List<String> listB = Arrays.asList(new String[]{"941", "942", "940", "946", "888", "466", "777"}); 

    System.out.println(listB.containsAll(listA)); 
    } 
} 

输出:true

+1

为什么在这种情况下这会被降低? – aliteralmind

+0

大声笑..我不知道这个男人......这些帅哥有趣 –

+1

@aliteralmind可能是因为它本质上[适合我](http://meta.stackexchange.com/questions/118992/are-works-for-me-答案 - 有效)评论,而不是答案(你没有解释OP做错了什么)。 – Pshemo