【发布时间】:2013-12-13 05:00:53
【问题描述】:
我有一个大小为 258 的 ArrayList
现在我希望将其拆分为三个不同的 ArrayList,为此我创建了以下代码:
Integer start = (int) Math.floor((sitesToSearch.size() / 3));
Integer middle = (int) Math.floor((sitesToSearch.size() / 2));
Integer end = (int) Math.floor((sitesToSearch.size() / 1));
ArrayList<String> crawl_list1 = (ArrayList<String>)tmp.subList(0, start);
ArrayList<String> crawl_list2 = (ArrayList<String>)tmp.subList(start+1, middle);
ArrayList<String> crawl_list3 = (ArrayList<String>)tmp.subList(middle+1, end);
不幸的是,这会引发以下错误:
Exception in thread "main" java.lang.ClassCastException: java.util.ArrayList$SubList cannot be cast to java.util.ArrayList
那么我怎样才能把它分成三个更小的 ArrayList
tmp declaration:
public ArrayList<String> getExternalLinks(ArrayList<String> rootDomains){
ArrayList<String> result = new ArrayList<String>();
Document doc = null;
/*
* Check if root is valid
* Find search the site for internal links
*/
for (String root : rootDomains) {
if (!(root == null) || !root.isEmpty() ||!root.contains("#")) {
try {
doc = Jsoup.connect(root)
.userAgent("Mozilla")
.get();
result.addAll(findExternalLinks(findInternalLinks(doc,root),root));
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
System.out.println(result.size());
return result;
}
【问题讨论】:
-
你如何定义tmp?以及它是如何填充的?
-
能否请您出示
tmp的声明 -
sitesToSearch和tmp是什么关系?