当前位置: 代码迷 >> J2SE >> ArrayList 过滤,该怎么解决
  详细解决方案

ArrayList 过滤,该怎么解决

热度:676   发布时间:2016-04-23 20:40:44.0
ArrayList 过滤
一个ArrayList<person> 类型的集合personlist

person 类的属性 name,age,sex 

想把 sex为‘男’的对象筛选出来放到一个新的ArrayList<person>里

我的方法比较笨就是for循环

还有没有好的方法能实现这个功能,比如用filter或者其他的方法实现的
------解决方案--------------------
这样不错,过滤就不知道了,不过你也可以通过Collections.binarySearch去找,找到了就从原list中删除,放到新的list中,然后再找!

------解决方案--------------------
或者你先排序,然后用subList
------解决方案--------------------
filter的实现也是遍历吧~

感觉只有遍历了
------解决方案--------------------

貌似只能靠遍历了
------解决方案--------------------
为什么用for循环是笨方法?
你这个需求在list是无序排布(没有按照sex排过序)的情况下,必然需要Θ(n),也就是你至少要全部遍历一遍,因为你只有访问到一个对象,你才可能知道sex是什么
既然是遍历list,那for循环自然是最常规的处理方式。
------解决方案--------------------
mongodb支持这样的过滤查找,mongodb用的是BTree方式索引。lz可以详细钻研下mongodb的过滤查询方式。
针对这样的需要,估计都会用for
------解决方案--------------------
只能用循环遍历一遍
  相关解决方案