【发布时间】:2013-10-03 20:23:40
【问题描述】:
我有一个 ArrayList 的 ArrayList 实现为:
ArrayList<ArrayList<Integer>> sampleList = new ArrayList<ArrayList<Integer>>();
假设我的列表,经过一些操作,包含以下元素:
[[1,2,3],[2,1,3,4],[3,1,2],[4,2]]
我想从这个集合中删除所有出现的特定元素,比如 4,即,我想在删除 4 后获得以下输出:
[[1,2,3],[2,1,3],[3,1,2]]
我知道我可以使用 for 循环,但在非常大的集合的情况下,这将太乏味且效率低下。 那么有没有更好的方法来做到这一点? (我是编程新手)
【问题讨论】:
-
只有访问(或不访问)元素才能知道它是否存在。
-
使用集合而不是列表。
-
那么我必须使用 for 循环来检查完整集?
-
除非你对性能有严格的要求,否则我认为你不应该太在意这种情况下的低效率。一句著名的软件工程名言是“过早的优化是万恶之源”。使用现代 CPU,您最好以不同的方式花费宝贵的时间。当然,这一切都取决于具体情况。
-
除非您已经测量出存在性能问题,否则您可能只是在猜测,而您并没有。您应该专注于使您的代码简单明了,并且可能足够快。