当前位置: 首页 > news >正文

在哪里学做网站关键词大全

在哪里学做网站,关键词大全,电商网站目录优化,企业名录app哪个好在Java中#xff0c;我们会经常使用到自定义类#xff0c;那我们如何进行自定义类的比较呢? 1.Comparable接口 普通数据的比较 int a10;int b91;System.out.println(ab); 那自定义类型可不可以这样比较呢#xff1f;看一下代码 我们发现会报错#xff0c;因为自定义…在Java中我们会经常使用到自定义类那我们如何进行自定义类的比较呢? 1.Comparable接口 普通数据的比较 int a10;int b91;System.out.println(ab); 那自定义类型可不可以这样比较呢看一下代码 我们发现会报错因为自定义类型stu1和stu2里面存的是引用是无法直接根据姓名或年龄进行比较的。 1.1Comparable接口的使用 如果想要自定义类型根据年龄和名字进行比较这时候就要用到我们的Comparable接口。 当我们观察Comparable接口的底层细节会发现有一个T和一个方法T代表我们要比较的类型方法是我们根据实际情况来重写compareTo方法也就是比较的规则。 1.根据年龄比较  自定义类中具体实现 class Student implements ComparableStudent{public String name;public int age;public Student(String name, int age) {this.name name;this.age age;}Overridepublic int compareTo(Student o) {//根据年龄比较/*if(this.ageo.age){return 1;}else if (this.ageo.age){return 0;}else {return -1;}*/return this.age-o.age;} } 完整代码 class Student implements ComparableStudent{public String name;public int age;public Student(String name, int age) {this.name name;this.age age;}Overridepublic int compareTo(Student o) {//根据年龄比较/*if(this.ageo.age){return 1;}else if (this.ageo.age){return 0;}else {return -1;}*/return this.age-o.age;} } public class Test {public static void main(String[] args) {Student stu1new Student(zhansan,18);Student stu2new Student(man,24);System.out.println(stu1.compareTo(stu2));} }2.根据名字比较 class Student implements ComparableStudent{public String name;public int age;public Student(String name, int age) {this.name name;this.age age;}Overridepublic int compareTo(Student o) {return this.name.compareTo(o.name);} } public class Test {public static void main(String[] args) {Student stu1new Student(zhansan,18);Student stu2new Student(man,24);System.out.println(stu1.compareTo(stu2));} }由于名字是String类String类在底层中也实现了compareTo方法所以我们可以直接调用compareTo方法来实现名字的比较。 3. 多个对象之间的比较 多个对象我们可以用一个对应类的数组来存储然后思路就是让数组里面的元素就行比较。 这里模拟了冒泡排序进行比较。 根据名字来排序 import java.util.Arrays;class Student implements ComparableStudent{public String name;public int age;public Student(String name, int age) {this.name name;this.age age;}Overridepublic String toString() {return Student{ name name \ , age age };}Overridepublic int compareTo(Student o) {return this.name.compareTo(o.name);} } public class Test {public static void mysort(Comparable[] comparables){for (int i 0; i comparables.length-1; i) {for(int j0;jcomparables.length-1-i;j){if(comparables[j].compareTo(comparables[j1])0){Comparable tmpcomparables[j];comparables[j]comparables[j1];comparables[j1]tmp;}}}}public static void main(String[] args) {Student[] studentsnew Student[]{new Student(zhansan,18),new Student(man,24),new Student(lebron,23)};mysort(students);System.out.println(Arrays.toString(students));} }根据年龄来排序 import java.util.Arrays;class Student implements ComparableStudent{public String name;public int age;public Student(String name, int age) {this.name name;this.age age;}Overridepublic String toString() {return Student{ name name \ , age age };}Overridepublic int compareTo(Student o) {return this.age-o.age;} } public class Test {public static void mysort(Comparable[] comparables){for (int i 0; i comparables.length-1; i) {for(int j0;jcomparables.length-1-i;j){if(comparables[j].compareTo(comparables[j1])0){Comparable tmpcomparables[j];comparables[j]comparables[j1];comparables[j1]tmp;}}}}public static void main(String[] args) {Student[] studentsnew Student[]{new Student(zhansan,18),new Student(man,24),new Student(lebron,23)};mysort(students);System.out.println(Arrays.toString(students));} }3.总结 1.当前阶段如果我们想要进行自定义类型之间的比较我们要使用Comparable接口。 2.重写接口里面的方法是我们根据需求来决定如何重写compareTo方法重写后的compareTo方法里面的具体实现就是我们的比较规则。 2.Comparator接口 我们发现当我们使用Comparable接口时并不是那么灵活因为它实现的比较规则是写死的如果我们想要换一种比较规则我们必须要对实现对比较方法里面的重新构造。 那有没有比较灵活的比较方式呢答案就是Comparator接口。 AgeComparator类 public class AgeComparator implements ComparatorStudent {Overridepublic int compare(Student o1, Student o2) {return o1.age- o2.age;} }NameComparator类 public class NameComparator implements ComparatorStudent {Overridepublic int compare(Student o1, Student o2) {return o1.name.compareTo(o2.name);} }主函数部分 根据年龄排序 public class Test {public static void main(String[] args) {Student[] studentsnew Student[]{new Student(zhansan,18),new Student(man,24),new Student(lebron,23)};NameComparator nameComparatornew NameComparator();AgeComparator ageComparatornew AgeComparator();Arrays.sort(students,ageComparator);System.out.println(Arrays.toString(students));} }根据名字比较 public class Test {public static void main(String[] args) {Student[] studentsnew Student[]{new Student(zhansan,18),new Student(man,24),new Student(lebron,23)};NameComparator nameComparatornew NameComparator();AgeComparator ageComparatornew AgeComparator();Arrays.sort(students,nameComparator);System.out.println(Arrays.toString(students));} }这里我们定义了AgeComparator类和NameComparator类它们都使用了Comparator这个接口 然后在自己的类里面重写了compareTo方法。 根据以上类实现的对象可以认为是比较规则将这些对象作为sort函数的参数就可以灵活实现不同比较方式的转变。 相对于Comparable接口来说Comparator不需要改变函数内部的具体实现来改变比较规则只需改变函数的参数就行了这样更安全也更方便。
http://www.w-s-a.com/news/672472/

相关文章:

  • 网站建设前期费用二手购物网站策划书
  • dede学校网站百度联盟是什么
  • 献县网站建设网站开发专业定制
  • 龙华做网站yihe kj安徽六安彩礼一般给多少
  • flash网站建设公司我的小程序在哪里找
  • 建网站需要数据库吗如何制作简单的网页链接
  • 杭州设计企业网站高端公司上虞做网站公司
  • 做网站能赚钱么用wordpress搭建知名网站
  • 阿里云服务器网站开发青岛做网站找哪家
  • 凡科做的网站为什么打不开织梦cms仿某作文网站整站源码(带采集)安装数据库
  • 免费h5模板网站模板汽车报价网址
  • 蔡甸网站建设烟台网站建设yt
  • 最流行的网站开发新开的网页游戏平台
  • 暴富建站wordpress 标签分类
  • 搞笑网站源码百度快照替代
  • 重庆网站建设哪家公司哪家好关键词是怎么排名的
  • 青县网站建设今天国际大事新闻
  • 深圳正规网站制作哪里好怎样优化网络
  • 米拓网站建设教程dw成品网站成品视频教学
  • 用jsp做的网站源代码天门网站网站建设
  • 百度如何把网站做链接地址有没有资源可以在线观看
  • 淮安做网站找哪家好电子商务网站建设规划书的内容
  • 开发网站建设用什么框架php黄页系统
  • 聊城制作网站全球十大电商平台排名
  • 用什么来网站开发好mega menu wordpress
  • 深圳制作网站有用吗wordpress的主题
  • 网站的规划与创建天津市南开区网站开发有限公司
  • 免备案网站主机建站哪个平台好
  • python做网站 不适合单页营销分享网站
  • 珠海市研发网站建设建设网站挣钱