如何在Java列表中插入和检查列表?

时间:2017-02-17 20:55:21

标签: java list

我有一个场景,我需要维护一个列表列表并根据它进行一些操作。我想获得以下类型的列表:

[{peter,se,red},{peter,da,red},{mark,se,red}]

我首先创建一个List以获取值,然后将该列表插入列表列表(如果它尚不存在)。例如,如果再次出现{peter,se,red},则不应插入。已提供以下代码段:

ArrayList<ArrayList<String>> listOfList = new ArrayList<ArrayList<String>>();
ArrayList<String> singleList = new ArrayList<String>();

void someFunction() {
  singleList.add("val1");
  singleList.add("val2");
  singleList.add("val3");

 if(listOfList.containsAll(singleList)) {
    <<some operation>>
 } else {
   listOfList.add(singleList);
   <<some operation>>
 }
 //clearing the list, so it can be freshly used 
 //upon successive invocation of the function
 singleList.clear();    

现在,即使我两次通过相同的列表,系统也会坚持使用其他部分。有人可以告诉我哪里出错了。另外,还有另一种更好的方法来实现这项任务吗?

2 个答案:

答案 0 :(得分:1)

您可以使用HashSet<ArrayList<String>>,也许这会有用吗?或者您可以使用.contains()方法检查List是否包含元素而不是containsAll

答案 1 :(得分:0)

请尝试以下方法:

if(listOfList.contains(singleList)) {
    <<some operation>>
 } else {
   listOfList.add(singleList);
   <<some operation>>
 }

关键是,您将使用 contains()方法而不是 containsAll()方法。

containsAll()正在检查对象集合。在这种情况下,列表集合,您只需提供一个列表。