栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > Java面试题

对复杂对象数组进行排序

Java面试题 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

代码:

import java.util.Arrays;public class CompareArray {public void comparableExample() {// Car对象实现Comparable接口Car car1 = new Car("Toyota", 2006, 5000);Car car2 = new Car("BMW", 2007, 5000);Car car3 = new Car("Chrysler", 2007, 4000);// 比较System.out.println("Car 1 equals Car 2: " + car1.compareTo(car2));System.out.println("Car 1 equals Car 3: " + car1.compareTo(car3));System.out.println("Car 2 equals Car 3: " + car2.compareTo(car3));System.out.println();



// 排序Car[] carArray = new Car[] { car1, car2, car3 };Arrays.sort(carArray);// 打印for (Car car : carArray)System.out.println(car.toString());}// 实现Comparable,按自己要求重写compareTo方法class Car implements Comparable {private String make;private int year;private int mileage;public Car(String make, int year, int mileage) {this.make = make;this.year = year;this.mileage = mileage;}// 此例子是根据mileage来比较对象public int compareTo(Object obj) {if (obj instanceof Car) {Car car = (Car) obj;if (this.mileage > car.getMileage())return 1;else if (this.mileage < car.getMileage())return -1;}return 0;}public void setMake(String make) {this.make = make;}public void setYear(int year) {this.year = year;}public void setMileage(int mileage) {this.mileage = mileage;}public String getMake() {return make;}public int getYear() {return year;}public int getMileage() {return mileage;}public String toString() {StringBuffer buffer = new StringBuffer();buffer.append("Make: " + make + "n");buffer.append("Year: " + year + "n");buffer.append("Mileage: " + mileage + "n");return buffer.toString();}}public static void main(String[] args) {new CompareArray().comparableExample();}}

运行结果:

Car 1 equals Car 2: 0
Car 1 equals Car 3: 1
Car 2 equals Car 3: 1

Make: Chrysler
Year: 2007
Mileage: 4000

Make: Toyota
Year: 2006
Mileage: 5000

Make: BMW
Year: 2007
Mileage: 5000

注:
只要是实现了Comparable接口的都可以通过这样来进行排序

String也是实现了Comparable接口

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/264302.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号