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

在Java中,如何在列表中插入和检查列表?,java,list,Java,List,我有一个场景,我需要维护一个列表列表,并在此基础上执行一些操作。我正在尝试获取以下类型的列表: [{peter,se,red},{peter,da,red},{mark,se,red}] 在这里,我首先创建一个列表来获取值,然后将此列表插入到列表列表中(如果它还不存在)。例如,如果{peter,se,red}再次出现,则不应插入它。已提供以下代码段: ArrayList<ArrayList<String>> listOfList = new ArrayList<A

我有一个场景,我需要维护一个列表列表,并在此基础上执行一些操作。我正在尝试获取以下类型的列表:

[{peter,se,red},{peter,da,red},{mark,se,red}]
在这里,我首先创建一个列表来获取值,然后将此列表插入到列表列表中(如果它还不存在)。例如,如果{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();    
ArrayList listOfList=新建ArrayList();
ArrayList singleList=新的ArrayList();
void函数(){
单一列表。添加(“val1”);
单一列表。添加(“val2”);
单一列表。添加(“val3”);
if(listOfList.containsAll(singleList)){
}否则{
添加(单列表);
}
//清除列表,以便新使用
//在连续调用函数时
singleList.clear();

现在,即使我两次通过同一个列表,系统也会坚持使用“其他”部分。有人能告诉我哪里出了问题吗?还有没有其他更好的方法来执行此任务?

请尝试以下方法:

if(listOfList.contains(singleList)) {
    <<some operation>>
 } else {
   listOfList.add(singleList);
   <<some operation>>
 }
if(listOfList.contains(singleList)){
}否则{
添加(单列表);
}
关键是这里您将使用contains()方法,而不是containsAll()方法


containsAll()正在检查对象集合。在本例中,是一个列表集合,您只需向其提供一个列表。

您可以使用
哈希集
,也许可以使用?或者您可以使用
.contains()
检查列表是否包含元素而不是contains的方法所有更好的实现方法是使用类而不是嵌套列表。事实上,这几乎是最糟糕的实现方法。使用集合来删除重复项。linkedhashset如何?我想你的意思是编写
列表。contains
而不是containsAll@Kayaman是的,我不想使用这个方法,但我只是从这个开始,看看我的代码是如何处理东西的..Contains()工作的,但不是以预期的方式。我将看看如何在这种情况下使用HashSet。