java - 如何根据两个对象参数对对象链接列表进行排序?

标签 java sorting linked-list

我使用链表来表示稀疏矩阵,其中链表仅保存非零元素及其在矩阵中的行和列,以便不浪费内存。

我需要能够根据行和列的顺序显示这些元素的位置。例如,包含 {data 5, row 2, col 0}、{data 8, row 0, col 2}、{data 1, row 0, col 1} 的矩阵将打印出:

0 1 1, 0 2 8, 2 0 5。

矩阵写为:

LinkedList<MatrixElement> matrix = new LinkedList<MatrixElement>();

元素类写为:

class MatrixElement {  //Data object for each node in list, holds value and location

private int data;
private int row;
private int col;

public MatrixElement(int row, int col, int data){
    this.data = data;
    this.row = row;
    this.col = col;
}

public int getData(){
    return data;
}

public int getRow(){
    return row;
}

public int getCol(){
    return col;

任何有关我应该如何对其进行排序以便最终打印的反馈将不胜感激。感谢您的帮助。

最佳答案

您可以按行然后按列排序,如下所示:

matrix.sort(Comparator.comparingInt(MatrixElement::getRow) 
                      .thenComparingInt(MatrixElement::getCol));

关于java - 如何根据两个对象参数对对象链接列表进行排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48673357/

相关文章:

java - 从数据库中获取 Hibernate 实体和附加字段

c++ - 使用 qsort() 进行稳定排序?

c++ - 递归打印列表

java - 在添加或删除其中的项目时保持初始列表项目顺序

java - 为什么这个链表会让我的 IDE 崩溃?

java - 当仅修改实体 obj 的少数字段且其余字段不应为空时,如何更新 Hibernate 实体记录

java - 我声明的数组大小是否与我的搜索有关?

java - Java 中的 Base64 指南

algorithm - 当数组长度为偶数时,在 mergesort 合并函数中应该做什么,特别是在 size=2 的情况下?

java - 如何仅使用 7 次比较对 5 项进行排序