如何加快删除确定类型的所有RDF主题?

How to speed up deletion of all RDF subjects of a determined type?

我正在使用 Jena 执行以下代码,以删除涉及类型为 ItemDespesa:

的主题的所有语句
    StmtIterator it = m.listStatements(null, ResourceFactory.createProperty(RDF("type")), ResourceFactory.createResource(LOA("ItemDespesa")));
    ArrayList l = new ArrayList<Statement>();
    while (it.hasNext()) {
        Statement n = it.nextStatement();
        StmtIterator it2 = m.listStatements(n.getSubject(), null, (RDFNode)null);
        while (it2.hasNext()) l.add(it2.nextStatement());
    }
    m.remove(l);

...我猜这相当于以下 SPARQL:

DELETE WHERE {
     ?x rdf:type loa:ItemDespesa
     ?x ?y ?z
}

但是,在具有 5.342.213 个元组的数据库中执行此操作大约需要 15 分钟。如何更有效地解决这个问题?

如@AndyS 的评论所述,将容器从 ArrayList 更改为 LinkedList 使其在几秒钟内执行。但是,它需要 Java 堆 space 变大。