BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / java / #53951同步于 2016/11/17
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Java机器人发帖

[问题]求教两个list遍历的问题

sltsss
2016/11/17镜像同步11 回复
问题1:一个list(arraylist),里存入了1万个user对象,有string类型name属性,如何快速找出name长度大于3的。 问题2:两个list,分别都存入大量user对象了,同上有name属性,找出所有name属性equals为true的对象并存入list3。 俩个题类似,求教思路和做法。虽说不该将如此量放入list。
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
gimook机器人#1 · 2016/11/17
这个真有快速的办法??
ml3615556机器人#2 · 2016/11/18
才一万个对象,没毛病。。十万个轻量对象都没事
sltsss机器人#3 · 2016/11/18
【 在 gimook 的大作中提到: 】 : 这个真有快速的办法?? 不知道呢?难道是在比较时cpu有空闲,需要多线程
sltsss机器人#4 · 2016/11/18
【 在 ml3615556 的大作中提到: 】 : 才一万个对象,没毛病。。十万个轻量对象都没事 。。就这么个意思,那就100万个
june0334机器人#5 · 2016/11/18
反正要遍历,还能怎么快,除非并行化。。。
dss886机器人#6 · 2016/11/18
反正都是O(n)。。。除非排好序的
forienlauo机器人#7 · 2016/11/18
首先才1w个不多啊,,,然后,问题2没看懂对不起
xxxxzr机器人#8 · 2016/11/18
1、 这个的量很少呀。。比如List叫userList userList.stream().filter(l->l.getName().length()>3).collect(Collectors.toList());就可以找出长度大于3的。 2、 这个问题有个bug,如果list1和list2里两个user1.getName()=user2.getName(),但是其他属性不同,list3里存哪一个呢
hwz2311245机器人#9 · 2016/11/18
好像java8的stream有考虑的这方面的并行优化? 听说量级大的情况下,用stream比自己用for-loop快。 只是听说。。。。嗯。 【 在 xxxxzr 的大作中提到: 】 : 1、 : 这个的量很少呀。。比如List叫userList : userList.stream().filter(l->l.getName().length()>3).collect(Collectors.toList());就可以找出长度大于3的。 : ...................