Díky za odpovědi, vyřešil jsem jednoduše vytvořením nového ArrayListu. Šlo mi jen o to se ujistit, zda neexistuje nějaká metoda, kterou by se to dalo sfouknout na jednom řádku kódu.
možná nějakou knihovnou nebo přejít na Kotlin, v Kotlinu existuje metoda filterIndexed
val list = listOf("one", "two", "three", "four")
val toremove = setOf(1,2)
val filteredIdx = list.filterIndexed { index, _ -> index !in toremove }
println(filteredIdx) // [one, four]
pokud vím, v Javě nic podobného není, ani v Guavě a podobných knihovnách. Musel bys vytvořit list indexů, ten přefiltrovat a potom namapovat. Možná by šel elegantně použít predikát "in" z Guavy. Záleží, jestli ti jde o jednoduchost nebo o výkon.