如何删除列表中不需要的项目

时间:2014-08-22 15:43:53

标签: java list jsoup

我有一个包含URL的列表,在该列表中有许多我想要删除的URL。我想要的包含一个特定的字符串。这是我的代码:

    String website = "www.yahoo.com";
    List<String> links = App.extractLinks(website); // this gets the links (URLs)
        for(int i = 0; i < links.size(); i++) {
                if(links.get(i).contains("XAB")) {

                }

现在我知道我可以创建一个新的List并执行.add(i),但这只会放入索引(因为它是一个整数)但是我想创建一个只有我想要的URL的新List 。也就是说,我需要一个列表而不是字符串,因为我需要在以后的代码中一次访问一个。大约有80个不同的网址

2 个答案:

答案 0 :(得分:1)

for (Iterator i = links.iterator(); i.hasNext();) {
    if (!links.next().contains("XAB"))
        i.remove();
}

答案 1 :(得分:0)

如果您想在迭代期间从List删除项目,可以使用Iterator

Iterator<String> iterator = links.iterator();
while(iterator.hasNext()) {
    // you need to invoke Iterator.next before manipulating the List
    // or any of its items
    if (!iterator.next().contains("XAB")) {
        iterator.remove();
    }
}

相反,如果您只想使用List "XAB"创建新的Strings,则可以使用快速枚举:

List<String> myXABList = new ArrayList<String>();
for (String s: links) {
    if (s.contains("XAB")) {
       myXABList.add(s);
    }
}