【问题标题】:Type mismatch when sorting 2D array排序二维数组时类型不匹配
【发布时间】:2023-04-10 23:51:01
【问题描述】:

这个方法应该是取一个2行3列数组m,对其进行排序并输出排序后的数组

import java.util.Arrays;
public class Foo {  
   public static void main(String[] args) {
     int[][] m1 = { { 14, 11, 13, 12 },
                    { 18, 15, 13, 13 },
                    { 19, 16, 15, 17 } };
     sortRows(m1);
   }
   public static int[][] sortRows(int[][] m) {
     int sorted[][] = new int[2][3];
     for (int i = 0; i <= 2; i++) {
        sorted[i] = Arrays.sort( m[i] ); //ERROR- cannot convert from void to int
     }
   return sorted;
   }
}

我无法想象虚空会从何而来。这到底是什么意思?

【问题讨论】:

  • 可以显示调用代码吗?
  • 难道你不应该阅读 Javadoc 文档并查看 Arrays.sort() 实际返回的内容吗?

标签: java arrays sorting type-conversion


【解决方案1】:

这是因为Arrays.sort()void方法,它没有返回值

如有疑问,请查看documentation

【讨论】:

  • 是的。 documentation
  • 是的@Quincunx。添加了它
  • 那么 Arrays.sort() 改变了原来的数组?然后我想我必须在排序之前复制数组..
  • @Jack 是的。调用 Arrays.sort( m[i] ) 将对数组进行排序 m
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-12-14
  • 1970-01-01
  • 2013-03-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多