java集合排序总结
来源:互联网 发布:java项目开发小 组长 编辑:程序博客网 时间:2024/06/12 02:17
Java集合排序最常用的实现方式有两种,面试中也是被经常问到的两种实现方式区别,自己也是写了个小例子来加深一下理解,先说一下这种排序:
- Comparable
在集合内部定义的方法实现排序,需要排序的类实现该接口,内部实现compareto方法,这个方法我们经常比较String的时候会用到,那是因为String本身就实现了Comparable接口。这种比较方法适用于某一类的固定比较,比较学生的分数,就经常会用来作比较,使用也比较简单,直接Collectios.sort(list)即可。 - Comparator
在集合外部实现的排序,也就是说需要比较的实体类不用做任何变化,单独新建一个比较类,实现Comparator接口,使用的时候直接list.sort(定义的类),即可,还比如说学生,除了分数排序外,难免会用姓名,年龄排序,这样的话Comparable就实现不了,那就可以新建一个外部的比较类。
两种排序方法具体还是要根据实际需要来选取,写了个小例子来加深自己的理解,也方便以后面试的时候能比较按照自己的理解回答
package com.zhh.ListDemo;
public class Student implements Comparable<Student> {public Student(){}public Student(String name,int age,int score){ this.name=name; this.age=age; this.score=score;}private String name;private int age;private int score;public int compareTo(Student stu) { return stu.age-this.age;}public String getName() { return name;}public void setName(String name) { this.name = name;}public int getAge() { return age;}public void setAge(int age) { this.age = age;}public int getScore() { return score;}public void setScore(int score) { this.score = score;}@Overridepublic String toString() { return "Student [name=" + name + ", age=" + age + ", score=" + score + "]";}
}
package com.zhh.ListDemo;
import java.util.Comparator;public class StudenScoreComparator implements Comparator<Student> {public int compare(Student stu1, Student stu2) { return stu1.getScore()-stu2.getScore();}
}
package com.zhh.ListDemo;
import java.util.ArrayList;import java.util.Collections;import java.util.List;public class ListOrderDemo {public static void main(String[] args) { List<Student> list = new ArrayList<Student>(); Student stu1 = new Student("stu1",1,3); Student stu2 = new Student("stu2",3,1); Student stu3 = new Student("stu2",2,5); list.add(stu3); list.add(stu1); list.add(stu2); System.out.println(list); Collections.sort(list); System.out.println(list); list.sort(new StudenScoreComparator()); System.out.println(list);}
}
阅读全文
0 0
- Java集合排序总结
- java集合排序总结
- java集合和数组的排序总结
- java初学者总结1集合排序
- Java-集合--Java集合排序
- Java集合框架总结:TreeSet类的排序问题
- Java集合和数组的排序方式总结
- Java集合和数组的排序方式总结
- Java集合和数组的排序方式总结
- Java集合和数组的排序方式总结
- Java集合和数组的排序方式总结
- Java集合排序方法comparable和comparator的总结
- Java集合和数组的排序方式总结
- Java排序之集合排序
- java中的集合排序
- Java集合对象排序
- Java集合对象排序
- java 集合排序
- 汇编语言实现简单的冒泡排序
- pygame库写游戏——入门<8>——动画和帧率
- 在使用appium做自动化的过程中遇到的坑
- Essential Qt 第十六章 元素/场景
- EasyDemo*eclipse实用快捷键总结
- java集合排序总结
- const修饰指针的用法
- 转载Eclipse 查看jdk源码
- 分页排序,各页中记录存在重复现象
- 算法导论笔记(四)
- clisp 中的 cons
- 服务器监控系统Zabbix的host、Item、trigger、action图解教程(第二章)
- 最近发现findViewById不再需要强制转型啦
- 基于java,selenium选择下拉框的某一个选项