摘要:本文主要向大家介绍了JAVA语言的泛型的排序问题Collections.sort及Comparable的应用,通过具体的内容向大家展现,希望对大家学习JAVA语言有所帮助。
本文主要向大家介绍了JAVA语言的泛型的排序问题Collections.sort及Comparable的应用,通过具体的内容向大家展现,希望对大家学习JAVA语言有所帮助。
一java中对泛型(集合类型)排序的问题,主要采用了两张方式一种是对要排序的实体类,实现Comparable接口,另一种方式,Collections集合工具类进行排序。
二.实现Comparable接口方式
package com.shine.demo.test;
import java.io.Serializable;
public class Car implements Serializable, Comparable
/**
* 序列化版本.
*/
private static final long serialVersionUID = 5854674665110917200L;
private Long id;
private String name;
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@Override
public int compareTo(Car car) {
if(!this.id.equals(car.getId()))
return this.id.compareTo(car.getId());
else if(!this.name.equals(car.getName()))
return this.name.compareTo(car.getName());
return 0;
}
@Override
public String toString() {
return "Car的id为:" + this.id + ",名称为:" + this.name;
}
}
实现了Comparable接口,重写compareTo方法。
三.Collections集合工具
package com.shine.demo.test;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
import java.util.Set;
import java.util.TreeSet;
public class Test {
public static void main(String[] args) {
Car car = new Car();
car.setId(1L);
car.setName("小汽车");
Car car1 = new Car();
car1.setId(2L);
car1.setName("货车");
Car car2 = new Car();
car2.setId(3L);
car2.setName("载客小汽车");
Car car3 = new Car();
car3.setId(4L);
car3.setName("出租车");
//使用Comparable与Set进行排序
Set
cars.add(car);
cars.add(car3);
cars.add(car1);
cars.add(car2);
for (Car carInfo : cars) {
System.out.println(carInfo);
}
//常用Collections的sort排序
List
carList.add(car);
carList.add(car3);
carList.add(car1);
carList.add(car2);
Collections.sort(carList, new Comparator
@Override
public int compare(Car car1, Car car2) {
return (int) (car1.getId() - car2.getId());
}
});
for (Car carInfoList : carList) {
System.out.println(carInfoList);
}
}
}
采用了Collections的sort排序方法,其原理是利用了Comparator的类,进行排序。
希望这篇文章可以帮助到你,总之同学们,IT知识尽在职坐标。
您输入的评论内容中包含违禁敏感词
我知道了
请输入正确的手机号码
请输入正确的验证码
您今天的短信下发次数太多了,明天再试试吧!
我们会在第一时间安排职业规划师联系您!
您也可以联系我们的职业规划师咨询:
版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
沪公网安备 31011502005948号