如何在java里使用sort方法对链表中自定义的元素进行排序(计数器)

这里举例子一个

首先,我创建了一个Item类,用于创建链表中的元素
这个Item包含两个私有函数,代码如下:

Item类:

package lru;

public class Item {
    private int num;
    private int count;
    
    public Item() {
    }
    public Item(int num, int count) {
        this.num = num;
        this.count = count;
    }
    
    public int getNum() {
        return num;
    }
    public void setNum(int num) {
        this.num = num;
    }
    public int getCount() {
        return count;
    }
    public void setCount(int count) {
        this.count = count;
    }
}

然后就是创建一个链表,放入Item类型的元素;再以count的值进行排序:

测试类:

package lru;

import java.util.ArrayList;
import java.util.Comparator;

public class T {

    public static void main(String[] args) {
        ArrayList<Item> memory = new ArrayList<>();
        Item item1 = new Item(1,1);
        Item item2 = new Item(2,3);
        Item item3 = new Item(3,2);
        memory.add(item1);
        memory.add(item2);
        memory.add(item3);

        System.out.println("排序前,每个item的位置:");
        for (int i = 0; i < memory.size(); i++) {
            System.out.println("item"+ (i + 1) + "的位置:" + (memory.get(i).getNum() - 1));
        }

        System.out.println("=========================");
        memory.sort(Comparator.comparing(Item::getCount));

        System.out.println("根据count值的大小递增排序后,每个item的位置:");
        for (int i = 0; i < memory.size(); i++) {
            System.out.println("item"+ (i + 1) + "的位置:" + (memory.get(i).getNum() - 1));
        }
    }
}

这里的关键代码只有一行,就是sort排序那行,用接口Comparator里的方法,指定根据的变量进行排序;

最后打印的结果为:
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值