java - 在Java中获取矩阵的排序值

标签 java sorting matrix

我对 Java 完全陌生。 我需要在 Java 中“排序”矩阵的值,但我不知道该怎么做。

这是我的矩阵:

double matrix = new double[3][3];
// fill matrix with some random values

矩阵的结果可能是这样的:

3,4    9.4    7.7
4,1    3.48   9.9
1,6    3.5    5.3

现在我需要按相应值的递减顺序获取该矩阵的 i 和 j 值。有一些方法可以做到这一点吗?

在这种情况下,具有排序值的 vector 应该包含如下内容: (1,2)、(0,1)、(0,2)、(2,2) ... (2,1)

最佳答案

使用 Java 8,您可以使用 Lambda 来完成此操作:

int rows = matrix.lenght;
int cols = matix[0].lenght;

List<List<Integer>>orderedSavingsList = IntStream.range(0, rows).mapToObj(i ->
            IntStream.range(0, cols).mapToObj(j ->
                    new double[]{i, j, matrix[i][j]}
            )
    )
    .flatMap(x -> x).filter(t -> t[0] < t[1])
    .sorted((a, b) -> Double.compare(b[2], a[2]))
    .map(a -> Arrays.asList((int) a[0], (int) a[1]))
    .collect(Collectors.toList());

之后尝试打印列表:

orderedSavingsList.forEach(System.out::println);

关于java - 在Java中获取矩阵的排序值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50394769/

相关文章:

javascript - 使用函数 'sort"对 JavaScript 数组进行排序

python - numpy:如何从矩阵向量构造向量矩阵

r - 如何打印出行名而不是​​它们的索引?

python - 为什么 SymPy 在我对符号矩阵进行行归约时给出错误答案?

java - GWT - 货币格式化程序安全客户端和服务器端

java - 我在 Maven 构建中得到 "The build could not read 1 project"因为未定义的版本

linux - 根据文件中的时间戳对文件进行排序

php - 如何在 php 中对字符串数组进行排序? [这里的字符串是路径。例如/root/mandy/a.pdf, b.pdf & c.pdf

java - 在java中交换字符串中的两个子字符串

java - 以 HTML 格式显示 XML 文件的差异