1.筛选出符合条件的Hero:要求hp>100 && damage<50
匿名类实现:
先定义接口HeroChecker,其中的test()方法实现了Hero的筛选
1 package generic;
2
3 import charactor.Hero;
4
5 public interface HeroChecker {
6 public boolean test(Hero h);
7 }
1 package generic;
2
3 import java.util.ArrayList;
4 import java.util.List;
5 import java.util.Random;
6 import charactor.Hero;
7
8 public class test {
9
10 public static void main(String[] args) {
11 Random r = new Random();
12 List<Hero> heros = new ArrayList<Hero>();
13 for (int i = 0; i < 10; i++) {
14 heros.add(new Hero("hero " + i, r.nextInt(1000), r.nextInt(100)));
15 }
16 System.out.println("初始化后的集合:");
17 System.out.println(heros);
18 System.out.println("筛选出 hp>100 && damange<50的英雄");
19
20 // 借助接口HeroChecker实现匿名类,匿名类中有test()方法,正是要求的筛选方法
21 HeroChecker hc = new HeroChecker() {
22 @Override
23 public boolean test(Hero h) {
24 // TODO Auto-generated method stub
25 if (h.hp > 100 && h.damage < 50)
26 return true;
27 else
28 return false;
29 }
30 };
31 filter(heros, hc);
32 }
33
34 // 通过匿名类HeroChecker的test()方法,测试HeroList的每一个Hero,输出符合要求的Hero
35 private static void filter(List<Hero> heros, HeroChecker hc) {
36 for (Hero hero : heros) {
37 if (hc.test(hero) == true)
38 System.out.print(hero);
39 }
40 }
41
42 }
效果图:

来源:https://www.cnblogs.com/gilgamesh-hjb/p/12232002.html