标题很好地说明了我遇到的麻烦,这是我的代码:
// fields required for traversal
private Queue<ArrayList<String>> q;
private ArrayList<ArrayList<String>> r;
Set<String> stringList = getMeStrings();
for(String s : stringList)
{
ArrayList<String> stringsRoute = new ArrayList<String>();
stringsRoute.add(getSomeString());
stringsRoute.add(s);
if(!r.contains(stringList))
{
if(!q.contains(stringList))
{
q.add(stringList);
}
r.add(stringList);
}
}
我的 For 循环中的 If 语句总是失败,我认为原因是因为我正在创建一个新的 ArrayList 对象(不同的引用),而我的 If 语句没有检查 [ r ] 中每个 ArrayLists 的内容以相同的顺序包含相同的元素..等
我知道需要使用 .equals 来确定两个 ArrayList 是否相似,但我有一个包含许多其他 ArrayList 的 ArrayList。
如何检查父 ArrayList 是否包含等同于我正在创建的新 ArrayList 的 ArrayList?
我希望很清楚我想要达到的目标。
谢谢