在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。