美文网首页
java学习——比较器,进行排序

java学习——比较器,进行排序

作者: 子玲2017 | 来源:发表于2017-05-18 10:39 被阅读0次

Arrays类

inttemp[] = {3,5,7,9,1,2,6,8};//声明一个整形数组

Arrays.sort(temp);//数组排序

System.out.println(Arrays.toString(temp));// 以字符串输出数组  [1, 2, 3, 5, 6, 7, 8, 9]

intpoint = Arrays.binarySearch(temp,3);// 检索数据位置

System.out.println("元素'3'的位置在:"+ point);//元素'3'的位置在:2

Arrays.fill(temp,3);//填充数组

System.out.println(Arrays.toString(temp));// 以字符串输出数组 [3, 3, 3, 3, 3, 3, 3, 3]

Comparable接口   

public class Student implements Comparable {//指定类型为Student

private String name;

private int age;

private float score;

public Student(String name,int age,float score) {

this.name= name;

this.age= age;

this.score= score;

}

publicString toString() { 

returnname+"\t\t"+age+"\t\t"+score; 

}

@Override

public int compareTo(Student o) {// 覆写compareTo()方法,实现排序规则的应用

if(this.score> o.score) {

return -1;

}else if(this.score< o.score) {

return 1;

}else{

if(this.age> o.age){

return 1;

}else if(this.age< o.age){

return -1;

}else{

return 0;}}}}

main

Student stu[] = {new Student("张三",20,90.0f),new Student("李四",22,90.0f),new Student("王五",20,99.0f),new Student("赵六",20,70.0f),new Student("孙七",22,100.0f)};

java.util.Arrays.sort(stu);// 进行排序操作

for(int i =0; i < stu.length; i++) {

System.out.println(stu[i]);

}

//返回如下:

自定义比较规则:

//定义学生类

public classStudents {

privateStringname;

private intage;

publicStudents(String name,intage) {

this.name= name;

this.age= age;

}

public booleanequals(Object obj) {

if(this== obj){

return true;

}

if(!(objinstanceofStudents)){

return false;

}

Students stu = (Students) obj;

if(stu.name.equals(this.name)&&stu.age==this.age){

return true;

}else{

return false;

}

}

publicString toString() {

returnname+"\t\t"+age;

}

publicString getName() {

returnname;

}

public voidsetName(String name) {

this.name= name;

}

public intgetAge() {

returnage;

}

public voidsetAge(intage) {

this.age= age;

}

}

// 定义比较规则

public classStudentComparatorimplementsComparator {//实现比较器接口

@Override

public intcompare(Students s1, Students s2) {// 为学生类定义比较规则

if(s1.equals(s2)){

return0;

}else if(s1.getAge() < s2.getAge()){

return1;

}else{

return-1;

}

}

}

// 为对象数组排序

Students student[] = {new Students("张三",20),new Students("李四",22),new Students("王五",20),new Students("赵六",22)};

java.util.Arrays.sort(student,newStudentComparator());//排序,指定排序规则

for(inti =0; i < student.length; i++) {

System.out.println(student[i]);

}

//返回如下:

相关文章

  • java学习——比较器,进行排序

    Arrays类 inttemp[] = {3,5,7,9,1,2,6,8};//声明一个整形数组Arrays.so...

  • js里关于Array.prototype.sort分析及日常使用

    介绍 对数组内容进行排序,可传入比较器定义排序规则 使用 arr.sort(compare) compare比较器...

  • Java比较器(对象排序)

    Java实现排序的方式 自然排序:java.lang.Comparable 定制排序:java.lang.Comp...

  • 一个Java8比较器

    最近在开发中,重构背包功能时,需要对物品进行多级排序。 用传统的Java语法很难实现,所以写了个函数式比较器,特点...

  • Java-排序

    Java中排序需要先确定比较的方式、再进行排序 1. 确定比较的方式----设置类中哪一个属性或者哪种属性组合进行...

  • Java 比较器 和 包装类

    Java比较器 背景: 在Java中经常会涉及到多个对象的排序问题,那么就涉及到对象之间的比较 Java中的对象,...

  • java volatile

    重排序 在Java内存模型中,为了效率是允许编译器和处理器对指令进行重排序,重排序它不会影响单线程的运行结果,但是...

  • Java 排序

    概述 ​对Java对数组对象进行排序,Java对排序问题的处理。Java排序一般包括基础排序和Lambda Com...

  • 快速排序(java实现)

    下面这篇文章是对快速排序讲解的比较清晰明了的,可以参考学习。 快速排序(java实现)

  • 对数器

    数组排序对数器 1.java有自己的数组复制方法和比较方法,要先导入java.util.Arrays包; 2.生成...

网友评论

      本文标题:java学习——比较器,进行排序

      本文链接:https://www.haomeiwen.com/subject/ijbdxxtx.html