| Field | 描述 |
| 名称 | 要执行的操作 |
| 主要参与者 | 管理员 |
| 前提条件 | 管理员登录系统 |
| 后置条件 | 只对符合指定标准的会员执行操作 |
| 主成功场景 | 1. 管理员对要执行操作的目标会员设置过滤标准; 2. 管理员选择要执行的操作; 3. 管理员点击提交按钮; 4. 系统找到符合指定标准的会员; 5. 系统对符合指定标准的会员执行预先选择的操作。 |
| 扩展 | 在选择执行操作前或者点击提交按钮前,管理员可以选择是否预览符合过滤标准的会员信息。 |
| 发生频率 | 一天中会发生许多次。 |
public class Person {
public enum Sex {
MALE, FEMALE
}
String name;
LocalDate birthday;
Sex gender;
String emailAddress;
public int getAge() {
// ...
}
public void printPerson() {
// ...
}
}
public static void printPersonsOlderThan(List<person> roster, int age) {
for (Person p : roster) {
if (p.getAge() >= age) {
p.printPerson();
}
}
}
public static void printPersonsWithinAgeRange(
List<person> roster, int low, int high) {
for (Person p : roster) {
if (low <= p.getAge() && p.getAge() < high) {
p.printPerson();
}
}
}
public static void printPersons(List<person> roster, CheckPerson tester) {
for (Person p : roster) {
if (tester.test(p)) {
p.printPerson();
}
}
}
class CheckPersonEligibleForSelectiveService implements CheckPerson {
public boolean test(Person p) {
return p.gender == Person.Sex.MALE &&
p.getAge() >= 18 &&
p.getAge() <= 25;
}
}
printPersons(
roster, new CheckPersonEligibleForSelectiveService());
printPersons(
roster,
new CheckPerson() {
public boolean test(Person p) {
return p.getGender() == Person.Sex.MALE
&& p.getAge() >= 18
&& p.getAge() <= 25;
}
}
);
printPersons(
roster,
(Person p) -> p.getGender() == Person.Sex.MALE
&& p.getAge() >= 18
&& p.getAge() <= 25
);
interface CheckPerson {
boolean test(Person p);
}
interface Predicate<t> {
boolean test(T t);
}
interface Predicate<person> {
boolean test(Person t);
}
public static void printPersonsWithPredicate(
List<person> roster, Predicate<person> tester) {
for (Person p : roster) {
if (tester.test(p)) {
p.printPerson();
}
}
}
printPersonsWithPredicate(
roster,
p -> p.getGender() == Person.Sex.MALE
&& p.getAge() >= 18
&& p.getAge() <= 25
);
public static void printPersonsWithPredicate(
List<person> roster, Predicate<person> tester) {
for (Person p : roster) {
if (tester.test(p)) {
p.printPerson();
}
}
}
public static void processPersons(
List<person> roster,
Predicate<person> tester,
Consumer<person> block) {
for (Person p : roster) {
if (tester.test(p)) {
block.accept(p);
}
}
}
processPersons(
roster,
p -> p.getGender() == Person.Sex.MALE
&& p.getAge() >= 18
&& p.getAge() <= 25,
p -> p.printPerson()
);
public static void processPersonsWithFunction(
List<person> roster,
Predicate<person> tester,
Function<person , string> mapper,
Consumer<string> block) {
for (Person p : roster) {
if (tester.test(p)) {
String data = mapper.apply(p);
block.accept(data);
}
}
}
processPersonsWithFunction(
roster,
p -> p.getGender() == Person.Sex.MALE
&& p.getAge() >= 18
&& p.getAge() <= 25,
p -> p.getEmailAddress(),
email -> System.out.println(email)
);
public static <x , Y> void processElements(
Iterable<x> source,
Predicate<x> tester,
Function<x , Y> mapper,
Consumer<y> block) {
for (X p : source) {
if (tester.test(p)) {
Y data = mapper.apply(p);
block.accept(data);
}
}
}
processElements(
roster,
p -> p.getGender() == Person.Sex.MALE
&& p.getAge() >= 18
&& p.getAge() <= 25,
p -> p.getEmailAddress(),
email -> System.out.println(email)
);
roster.stream()
.filter(
p -> p.getGender() == Person.Sex.MALE
&& p.getAge() >= 18
&& p.getAge() <= 25)
.map(p -> p.getEmailAddress())
.forEach(email -> System.out.println(email));
|
行为 |
聚集操作 |
| 获取对象 | Stream<E> stream() |
| 过滤匹配Predicate实例指定标准的对象 | Stream<T> filter(Predicate<? super T> predicate) |
| 通过一个Function实例获取对象匹配的值 | <R> Stream<R> map(Function<? super T,? extends R> mapper) |
| 执行Consumer实例指定的行为 | void forEach(Consumer<? super T> action) |
机械节能产品生产企业官网模板...
大气智能家居家具装修装饰类企业通用网站模板...
礼品公司网站模板
宽屏简约大气婚纱摄影影楼模板...
蓝白WAP手机综合医院类整站源码(独立后台)...苏ICP备2024110244号-2 苏公网安备32050702011978号 增值电信业务经营许可证编号:苏B2-20251499 | Copyright 2018 - 2025 源码网商城 (www.ymwmall.com) 版权所有