java 泛型知识点综合 之 示例程序
2017-08-30 20:21
344 查看
package NEW_DATE_SEQUENCE_PACKAGE; public class J_8_30_2 { public static void main(String[] args) { Manager ceo=new Manager("hello",80); Manager cfo=new Manager("well",10); Pair1<Manager> buddies=new Pair1<>(ceo,cfo); printBuddies(buddies); ceo.setBonus(100000); cfo.setBonus(1); Manager[] managers={ceo,cfo}; Pair1<Employee> result=new Pair1<>(); minmaxBonus(managers,result); System.out.println("first: "+result.getFirst().getName()+" second: "+result.getSecond().getName()); maxminBonus(managers,result); System.out.println("first: "+result.getFirst().getName()+" second: "+result.getSecond().getName()); } public static void printBuddies(Pair1 <? extends Employee> p) { Employee first=p.getFirst(); Employee second =p.getSecond(); System.out.println(first.getName()+" and "+second.getName()+" is buddies"); } public static void minmaxBonus(Manager[] a,Pair1<? super Manager> result) { Manager min=a[0]; Manager max=a[0]; for(int i=0;i<a.length;++i) { if(a[i].getBonus()<min.getBonus()) min=a[i]; if(a[i].getBonus()>max.getBonus()) max=a[i]; result.setFirst(min); result.setSecond(max); } } public static void maxminBonus(Manager[] a,Pair1<? super Manager> result) { minmaxBonus(a,result); PairAlg.swap(result); //? } } class PairAlg { public static boolean hasNull(Pair1<?> p) { return p.getFirst()==null || p.getSecond()==null; } public static void swap(Pair1<?> p) { swapHelper(p); } public static <T> void swapHelper(Pair1<T> p) { T t=p.getFirst(); p.setFirst(p.getSecond()); p.setSecond(t); } } class Employee { private double salary; private String name; private double bonus; public Employee(String name,double salary) { this.name=name; this.salary=salary; this.bonus=0; } public double getSalary() { return salary; } public String getName() { return name; } public double getBonus() { return bonus; } public void setBonus(double bonus) { this.bonus=bonus; } } class Manager extends Employee { public Manager(String name,double salary) { super(name,salary); } public void setBonus(double bonus) { super.setBonus(bonus); } } class Pair1<T> { private T first; private T second; public Pair1() { } public Pair1(T first,T second) { this.first=first; this.second=second; } public void setFirst(T t) { this.first=t; } public void setSecond(T t) { this.second=t; } public T getFirst() { return first; } public T getSecond() { return second; } }
相关文章推荐
- JAVA 泛型对象数组(本来想玩泛型随机流泛型对象数组在加点类集的综合程序)
- kafka java 生产消费程序demo示例
- JAVA GUI程序示例
- 第一个Java程序示例——Hello World!
- 《重构》 — Java示例:影片出租店程序(6、重构——引入状态模式)
- java程序中foreach用法示例
- 要求根据RandomStr.java:使用类型转换生成六位验证字符串,示例程序每次运 行时,都会生成不同的字符串。
- Java知识点整理:第九章:线性表、散列表 Map、集合、泛型、集合工具类 Collections
- Java基础之TreeSet集合使用泛型、比较器排序示例:
- java入门教程-1.6第一个Java程序示例——Hello World!
- 用java编写spark程序,简单示例及运行
- java 泛型综合例子
- [Java] 用泛型数组实现基于控制台的航班信息查询|增添程序
- 3行程序搞定SVM分类-用JAVA程序调用LibSVM API 最简单的示例
- [Java 10 泛型] 泛型通配符 Info<?> i = new Info<String>(); 在程序中定义没有方法的接口,称之为标识接口
- 《重构》 — Java示例:影片出租店程序(2、单元测试)
- java小程序 示例
- java 泛型深入之Set实用工具 各种集合泛型深入使用示例,匿名内部类、内部类应用于泛型探讨
- 控制台方式运行java程序示例
- 编写高质量代码:改善Java程序的151个建议(第7章:泛型和反射___建议98~101)