Java练习>Predicate接口>>集合信息筛选
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Java练习>Predicate接口>>集合信息筛选,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1596字,纯文字阅读大概需要3分钟。
内容图文
![Java练习>Predicate接口>>集合信息筛选](/upload/InfoBanner/zyjiaocheng/737/e98316cee783418681d5a95e178b34f1.jpg)
案例:
package JDK8.Xin;
import java.util.ArrayList;
import java.util.function.Predicate;
/*
练习:集合信息筛选。
数组当有多个"姓名+性别"的信息如下。
String[] array = {"易烊千玺,男","黄渤,男","舒淇,女","管虎,男","刘亦菲,女"};
请通过Predicate接口的拼装将符合要求的字符串筛选到集合ArrayList中,
须同时满足两个条件:
1.必须为男生。
2.姓名为两个字。
分析:
1.有两个判断条件,所有需要使用Predicate接口,对条件进行判断
2.必须同时满足两个条件,所有可以使用and方法连接两个判断条件
*/
public class Demo04Predicate {
/*
定义一个方法
方法的参数传递包含人员信息的数组
传递两个Predicate接口,用于对数组中的信息进行过滤
把满足条件的信息存到ArrayList集合中并返回
*/
public static ArrayList<String> filter(String[] arr, Predicate<String> pre1, Predicate<String> pre2){
//定义一个ArrayList集合,存储过滤之后的信息
ArrayList<String> list = new ArrayList<>();
//遍历数组,获取数组中的每一条信息
for (String s : arr) {
//使用Predicate接口中的方法test对获取到的字符进行判断
boolean b = pre1.and(pre2).test(s);
//对得到的布尔值进行判断
if (b){
//条件成立,两个条件都满足,把信息储存到ArrayList集合中
list.add(s);
}
}
//把集合返回
return list;
}
public static void main(String[] args) {
//定义一个存储字符串的数组
String[] array = {"易烊千玺,男","黄渤,男","舒淇,女","管虎,男","刘亦菲,女"};
//调用filter方法,传递字符串数组和两个Lambda表达式
ArrayList<String> list = filter(array,(String s)->{
//获取字符串中的性别,判断是否为男生
return s.split(",")[1].equals("男");
},(String s)->{
//获取字符串中的姓名,判断长度是否为4个数字
return s.split(",")[0].length()==2;
});
//遍历集合
for (String s : list) {
System.out.println(s);
}
}
}
运行结果:
黄渤,男
管虎,男
内容总结
以上是互联网集市为您收集整理的Java练习>Predicate接口>>集合信息筛选全部内容,希望文章能够帮你解决Java练习>Predicate接口>>集合信息筛选所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。