Java泛型使用之实现一个能够对字符、整型、浮点型、字节型、对象进行大小比较的方法

定义一个泛型类,定义泛型T,存储咱们的最大值最小值,重载构造函数,存储最大最小值,重写toString方法;

1package person.xsc.practice; 2 3public class Num<T> { 4 //定义最大最小值 5 public T max; 6 public T min; 7 public Num() { 8 } 9 //构造函数(有参) 10 public Num(T max, T min) { 11 this.max = max; 12 this.min = min; 13 } 14 public T getMax() { 15 return max; 16 } 17 public void setMax(T max) { 18 this.max = max; 19 } 20 public T getMin() { 21 return min; 22 } 23 public void setMin(T min) { 24 this.min = min; 25 } 26 @Override 27 public String toString() { 28 return "Num [max=" + max + ", min=" + min + "]"; 29 } 30} 31

定义一个泛型方法比较最大最小值,传入我们的泛型数组

1package person.xsc.practice; 2 3public class GeneralCompareMethod { 4 public <T extends Comparable<T>> Num<T> getMaxMin(T[]num){ 5 T max = num[0]; 6 T min = num[0]; 7 for (int i = 0; i < num.length; i++) { 8 if(max.compareTo(num[i])<0) { 9 max=num[i]; 10 } 11 if(min.compareTo(num[i])>0) { 12 min=num[i]; 13 } 14 } 15 return new Num<T>(max,min); 16 } 17} 18

定义一个studentII类,用于对象数组比较,实现 Comparable接口,并重写compareTo方法。

1package person.xsc.practice; 2 3public class StudentII implements Comparable{ 4 private int number=0; //学号 5 private String name=""; //学生姓名 6 private String gender=""; //性别 7 public StudentII() { 8 9 } 10 public StudentII(int number, String name, String gender) { 11 this.number = number; 12 this.name = name; 13 this.gender = gender; 14 } 15 16 public int getNumber() { 17 return number; 18 } 19 20 public void setNumber(int number) { 21 this.number = number; 22 } 23 24 public String getName() { 25 return name; 26 } 27 28 public void setName(String name) { 29 this.name = name; 30 } 31 32 public String getGender() { 33 return gender; 34 } 35 36 public void setGender(String gender) { 37 this.gender = gender; 38 } 39 40 @Override 41 public String toString() { 42 return "StudentII [number=" + number + ", name=" + name + ", gender=" + gender + "]"; 43 } 44 45 @Override 46 public int compareTo(Object o) { 47 // TODO Auto-generated method stub 48 StudentII student=(StudentII)o; 49 if(this.number==student.number){ 50 return 0; //如果学号相同,那么两者就是相等的 51 }else if(this.number>student.getNumber()){ 52 return 1; //如果这个学生的学号大于传入学生的学号 53 }else{ 54 return -1; //如果这个学生的学号小于传入学生的学号 55 } 56 } 57 58} 59

定义测试类,数组实例化,调用比较大小方法。

1package person.xsc.practice; 2public class NumTest { 3 public static void main(String[] args) { 4 // TODO Auto-generated method stub 5 GeneralCompareMethod gcm=new GeneralCompareMethod(); 6 System.out.println("=======整型数组比较======="); 7 Integer[]integerArray= {1,8,34,13,56}; 8 System.out.println(gcm.getMaxMin(integerArray)); 9 System.out.println("=======字符型数组比较======="); 10 Character[] charArray = { 'H', 'E', 'L', 'L', 'O' }; 11 System.out.println(gcm.getMaxMin(charArray)); 12 System.out.println("=======双精度型数组比较======="); 13 Double[] doubleArray = { 1.1, 2.2, 3.3, 4.4 }; 14 System.out.println(gcm.getMaxMin(doubleArray)); 15 System.out.println("=======StudentII对象数组比较======="); 16 StudentII[] stuArray= {new StudentII(1,"张三","男"),new StudentII(5,"李四","男"),new StudentII(2,"夏六","女")}; 17 System.out.println(gcm.getMaxMin(stuArray)); 18 System.out.println("=======字节型数组比较======="); 19 Byte[] byteArray = {'a','b','c','d'}; 20 System.out.println(gcm.getMaxMin(byteArray)); 21 } 22} 23
1=======整型数组比较======= 2Num [max=56, min=1] 3=======字符型数组比较======= 4Num [max=O, min=E] 5=======双精度型数组比较======= 6Num [max=4.4, min=1.1] 7=======StudentII对象数组比较======= 8Num [max=StudentII [number=5, name=李四, gender=], min=StudentII [number=1, name=张三, gender=]] 9=======字节型数组比较======= 10Num [max=100, min=97] 11
点赞
收藏

评论区

加载中...

相关推荐

MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1

文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s

Oracle 分组与拼接字符串同时使用

SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(

MySQL部分从库上面因为大量的临时表tmp_table造成慢查询

背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_

皕杰报表之UUID

​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为

手写Java HashMap源码

HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22

KVM调整cpu和内存

一.修改kvm虚拟机的配置1、virsheditcentos7找到“memory”和“vcpu”标签,将<namecentos7</name<uuid2220a6d1a36a4fbb8523e078b3dfe795</uuid