我正在尝试浏览一个链表(我们可以称之为超级列表),其中包含链接列表(子列表)元素。
将元素添加到两个链接列表中的方法是:
LinkedList<Object> list = new LinkedList<>();
public void add(Object... item) {
LinkedList<Object> thingie = new LinkedList<>();
for (Object i: item) {
thingie.add(i);
}
list.addAll(thingie);
}
现在我必须通过遍历超级列表来编写方法以检查子列表中是否存在1,2,3,4个元素的组 到目前为止(这是非常错误的)是:
LinkedList <Object> ohno = new LinkedList<>();
for (int i = 0; i<list.size(); i++){
ohno = (LinkedList<Object>) list.get(i);
if (int j = 1; j = ohno.size();){
return true;
}
else return false;
}
答案 0 :(得分:0)
你可以做的是创建一个方法,传递相关组大小的参数,并找出是否有任何大小组大小的子列表。
private static boolean hasSubListsOfSize (LinkedList<Object> superList, final int groupSize)
{
for (int i = 0, size = superList.size(); i < size; i++)
{
LinkedList<Object> subList = (LinkedList<Object>) superList.get(i);
if (subList.size() == groupSize)
{
return true;
}
}
// didn't find any sub lists of the group size
return false;
}
旁注:正如@Abhishek所指出的,您的超级列表在技术上不是LinkedList
LinkedList's
。它是LinkedList
的{{1}}。这就是为什么你必须对LinkedList进行显式转换才能访问&#34; Sub LinkedList&#34;的原因。
如果你想要Objects
的真LinkedList
,那么你应该像这样创建superList:
LinkedList's
如果你以这种方式创建它,那么你将避免在编译时进行显式转换。