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