Java用户定义对象的LinkedList

本文介绍如何在Java中对用户定义的LinkedList对象进行排序,包括升序和降序排序方法。通过对自定义House类实现Comparable接口,利用Collections.sort()方法完成排序,并演示了使用reverseOrder()方法实现降序排序。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Java用户定义对象的LinkedList

 

要在Java中对列表进行排序,可以使用sort(List<T> list) 方法。此方法可以对列表进行排序,其中所有元素都必须实现Comparable接口。

 

在下面的示例中,House类是用户定义的。为了使其具有可比性,它实现了Comparable接口。通过使用该sort(List<T> list) 方法,可以按升序排序。

 

如果要反转排序顺序,可以简单使用sort(List<T> list, Comparator<? super T> c) 。参数是Collections.reverseOrder()方法。此方法返回一个Comparator,它在实现Comparable接口的对象集合上使用自然顺序的反转。由于House类实现Comparable接口,我们可以使用此方法自动反转命令。

 

import java.util.Collections;
import java.util.LinkedList;
import java.util.List;
 
//sort self-defined object linkedlist in Java
 
class House implements Comparable<House> {
	String type;
	int size;
 
	public House(String t, int s) {
		type = t; 
		size = s;
	}
 
	@Override
	public int compareTo(House o) {
		int comparedSize = o.size;
		if (this.size > comparedSize) {
			return 1;
		} else if (this.size == comparedSize) {
			return 0;
		} else {
			return -1;
		}
	}
 
	public String toString() {
		return type;
	}
}
 
public class SortLinkedList {
	public static void main(String[] args) {
		LinkedList<House> houseList = new LinkedList<House>();
		houseList.add(new House("medium", 200));
		houseList.add(new House("small", 100));
		houseList.add(new House("large", 300));
		System.out.println(houseList);
 
		// sort in ascending order
		Collections.sort(houseList);
		System.out.println(houseList);
 
		// sort in descending order
		Collections.sort(houseList, Collections.reverseOrder());
		System.out.println(houseList);
	}
 
	public static void printList(List l) {
		for (Object o : l) {
			System.out.println(o);
		}
	}
}

 

输出:

[中,小,大] 
[小,中,大] 
[大,中,小]

 

相关文章:

  1. Java - 按值排序地图
  2. 对txt文件中的内容进行排序
  3. 在Java中对Double LinkedList进行排序
  4. 在Java中对String LinkedList进行排序
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值