【问题标题】:compare java lists比较java列表
【发布时间】:2011-09-30 12:07:56
【问题描述】:

在循环中,我做了一些操作,然后获取字符串并将其添加到 list1 循环后:list1 包含 2 个字符串:好的 现在,在另一个循环中,我在每次迭代中获得值,它返回一个字符串,我想检查 list1 中的字符串在第二个中是否可用:

for(inti=0;i<nb;i++){
   value= table.getValue(i);
   list1.add(value);
}

for(int j=0;j<nb;j++){
   String toto = table.getValue(i);
   //do other actions

   //here verify that list1 doesn't contain toto
   //I tried :
   assetFalse(table.getValue(i).contains(list1)); //not OK !
}

【问题讨论】:

  • 你在问什么问题???什么不起作用?
  • 我想在第二个循环中创建一个列表,然后验证 list1 的内容在 list2 中不可用
  • 在你的两个 for 循环中没有什么不同。在这两种情况下,你都使用相同的数据迭代

标签: java list


【解决方案1】:
//here verify that list1 doesn't contain toto
//I tried :
assetFalse(table.getValue(i).contains(list1)); //not OK !

首先将该方法称为assertFalse。

其次,您要检查 toto 是否包含列表(table.getValue(i)toto)。 请注意,您的代码也可以读作assertFalse(toto.contains(list1));(拼写固定并使用上面的赋值)。

相反,我猜你想这样做:

 assertFalse(list1.contains(toto));

另请注意,在您的两个循环中,您会遍历相同的集合 (table) 和相同的索引(0 到 nb-1)。因此list 将始终包含您检查的值(除非您在某处删除它们),因此您的断言将始终失败。

最后,请发布可编译代码:inti=0; 不会像 assetFalse(...)String toto = table.getValue(i); 那样编译,因为 i 在该循环中是未知的(它超出了范围)。

如果您希望我们帮助您,请在您的问题上投入更多精力。

编辑

如果您想比较两个集合,您还可以使用像 Apache Commons Collections 这样的实用程序库,它具有 CollectionUtils.containsAny(collection1, collection2) 等方法(如果两个集合中至少存在一个元素,则返回 true)等。

Google Guava 应该有类似的实用程序。

【讨论】:

    【解决方案2】:

    应该是这样的

    assertFalse(list1.contains(table.getValue(i)));
    

    如果getValue 返回String,则不能通过List 对其执行contains 操作。

    【讨论】:

      【解决方案3】:

      您似乎正在尝试检查列表 (list1) 是否包含在字符串中。那没有意义。反之亦然。

      【讨论】:

      • 我想在第二个循环中创建一个列表,然后验证 list1 的内容在 list2 中不可用
      【解决方案4】:

      如果您只是比较字符串列表,一个简单的 contains() 方法应该可以工作。

      for(String value: list2){
      
         //here verify that list1 doesn't contain string in list2
         if(list1.contains(value)){
            //Do something here.
         }
      }
      

      【讨论】:

        【解决方案5】:

        您在第二个循环中引用了“i”,但它是在第一个循环中声明的。

        【讨论】:

          猜你喜欢
          • 2013-04-08
          • 2011-02-15
          • 1970-01-01
          • 1970-01-01
          • 2013-06-10
          • 1970-01-01
          • 1970-01-01
          • 2010-09-09
          相关资源
          最近更新 更多