【java】Collection过滤
来源:互联网 发布:ubuntu zip命令 编辑:程序博客网 时间:2024/06/06 01:51
转载请注明出处:http://blog.csdn.net/u012250875/article/details/78205841
一般都是for循环对每一个元素进行if判断,天天写for循环确实难受,其实可以按js中的filter来写。
1.定义接口
/** * 过滤器 * @author puyf * @param <T> */ public interface Filter<T> { /** * 筛选是否通过 * @param t * @return true 表示通过 */ boolean pass(T t); }
2.定义工具方法
/** * @author puyf * @Description:过滤集合 * @param datas 数据源 * @param condition 过滤条件 * @return 返回过滤后的集合 */ public static <T> List<T> filter(Collection<T> datas, Filter<T> condition) { List<T> result = new ArrayList<>(); if (condition != null) { for (T t : datas) { if (condition.pass(t)) { result.add(t); } } } else { return new ArrayList<>(datas); } return result; }
3.使用
最后配合java8的lambda表达式,这么来做集合元素过滤的时候还是比较方便
public static void main(String[] args) { List<Integer> data = new ArrayList<>(Arrays.asList(new Integer[] { 1, 2, 3, 4, 5, 6, 7, 100, -1, -2 })); System.out.println("过滤出大于3的数:" + filter(data, (x) -> { return x > 3; })); System.out.println("过滤出大于3的偶数:" + filter(data, (x) -> { return x > 3 && ((x & 1) == 0); })); } //执行结果: 过滤出大于3的数:[4, 5, 6, 7, 100] 过滤出大于3的偶数:[4, 6, 100]
更多集合操作(点击查看)
阅读全文
0 0
- 【java】Collection过滤
- 【java】【java Collection】Collection
- java Collection
- java collection
- Java Collection
- Java Collection
- Java Collection
- java Collection
- java Collection
- Java Collection
- Java Collection
- Java Collection
- Java Collection
- Java Collection
- Java - Collection
- java Collection
- Java Collection
- Java Collection
- 作为一个程序员需要学多少技能?
- TensorFlow基础用法入门教程
- EAGAIN、EWOULDBLOCK、EINTR与非阻塞 长连接
- 二分查找
- 工作中jQuery常用实例-主要功能总结整理
- 【java】Collection过滤
- 在工具类静态方法调用@Autowired注入的bean方法
- 极光推送
- java 学习--kotlin的安装配置
- cuda win10安装
- 使用webpack构建本地服务器,实现自动刷新
- 智能硬件安全问题凸显 海云安护航个人信息安全
- 【面向JS--数组遍历】
- Ruby学习笔(06)_方法