就是判断list 是否为空嘛  List.isEmpty()  

解决方案 »

  1.   

    可能没有说清楚,List<String[]>、String[]都是有数据的
      

  2.   

    那楼主想问什么呢?list有数据,就是非空了,string[] 有数据,也非空了。楼主的问题是,描述详细一点 
      

  3.   

    这是正解。
    也可以判断size()是否大于0
      

  4.   

    List<String[]> signs = new ArrayList<String[]>();

    String[] arr = {"苹果","香蕉"};
    signs.add(arr);

    String[] arrb = {"葡萄","栗子"};
    signs.add(arrb);

        String[] a = {"苹果","香蕉"};
    List<String[]> b = new ArrayList<String[]>();
    b.add(a);
        
        boolean contains = signs.containsAll(b);    if (contains) {
       System.out.println("signs集合包含b集合的内容");
        } else {
       System.out.println("signs集合不包含b集合的内容");
        }打印结果是:signs集合不包含b集合的内容
      

  5.   


            String[] a = {"苹果","香蕉"};
            List<String[]> b = new ArrayList<String[]>();
            b.add(arr);
    a 和 arrb 都是数组,虽然内容相同,但指向不同的内存空间。
    你将b.add(a);  改为 b.add(arr); 就包含了。
      

  6.   

    arr和a分别引用两个不同的对象,此时containsAll比的是引用,而并不去比较arr和a里面的值,所以返回的是不包含。
      

  7.   

    这是我在网上找到的例子
    public static void main(String[] args) {    Set set = new HashSet();
        set.add(new Date());   //向列表中添加数据    set.add("apple");    //向列表中添加数据    set.add("TV");     //向列表中添加数据    List list=new ArrayList();    list.add("apple");    //向列表中添加数据    list.add("TV");    //向列表中添加数据    boolean contains = set.containsAll(list);    if (contains) {   System.out.println("Set集合包含List集合的内容");    } else {   System.out.println("Set集合不包含List集合的内容");    }}
    这个是和集合类有关系?
      

  8.   

    跟添加的对象有关系,这次楼主添加的是字符串常量,不是对象。
    如果改为如下形式,就又不包含了        Set set = new HashSet();
            set.add(new Date());   //向列表中添加数据
            set.add(arr);    //向列表中添加数据
            set.add("TV");     //向列表中添加数据        List list=new ArrayList();
            list.add(a);    //向列表中添加数据
            list.add("TV");    //向列表中添加数据
            boolean contains2 = set.containsAll(list);
            if (contains2) {
                System.out.println("Set集合包含List集合的内容");
            } else {
                System.out.println("Set集合不包含List集合的内容");
            }还是因为a 和 arr 指向不同的内存空间导致的。
      

  9.   

    你搞错了吧
    boolean contains = signs.containsAll(b);你是判断的list里面是否有这个list下面的代码是判断 boolean contains = set.containsAll(list);你应该是
    Set<List> set = new HashSet<List>();        List list = new ArrayList<>();        boolean b = set.containsAll(list);
      

  10.   

    如果你想知道集合中包不包含指定的String[],可以像下面这样
    List<String[]> signs = new ArrayList<String[]>();
    String[] arr = { "苹果", "香蕉" };
    signs.add(arr);
    String[] arrb = { "葡萄", "栗子" };
    signs.add(arrb);
    String[] a = { "苹果", "香蕉" };
    int i = Collections.binarySearch(signs, a, new Comparator<String[]>() {
    @Override
    public int compare(String[] o1, String[] o2) {
    int result = 1;
    if(Arrays.equals(o1, o2)){
    result = 0;
    }
    return result;
    }
    });
    if(i ==0){
    System.out.println("signs集合包含a数组的内容");
    }else{
    System.out.println("signs集合不包含a数组的内容");
    }

    但是你把数组放到另一个集合中,这就难比较了!,
      

  11.   

    恩,没有办法了,另外写了一个判断
    /**
     *判断 List<String[]>是否包含String[]
     */
    public static boolean bet(List<String[]> a,String[] b){

    for(int i=0;i<a.size();i++){
    if(a.get(i)[0].equals(b[0])&&a.get(i)[1].equals(b[1])){
    return true;
    }
    }
    return false;
    }
    谢谢大家!