java comparable 泛型_JAVA语言之泛型的排序问题Collections.sort及Comparable的应用

本文主要向大家介绍了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进行排序

Setcars = new TreeSet();

cars.add(car);

cars.add(car3);

cars.add(car1);

cars.add(car2);

for (Car carInfo : cars) {

System.out.println(carInfo);

}

//常用Collections的sort排序

ListcarList = new ArrayList();

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知识尽在职坐标。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值