当前位置: 首页 > 知识库问答 >
问题:

如何使用int值对2d String数组进行排序?

衡玄裳
2023-03-14

我自己似乎无法解决这个问题。我有一个二维阵列,

字符串收集器[名称][#ofstuff]

我试着用这段代码来分类:

Arrays.sort(Collectors, new Comparator<String[]>() {
 public int compare(String[] a1, String[] a2 ) 
 {
    return a1[1].compareTo(a2[1]);
 }
});

我对Compare很陌生,试着阅读了很多关于它的文档,但并不真正理解它。排序函数是否只获取我想要比较两个字符串的信息,然后执行它的操作?

出于某种原因,此代码在每次读取时都会抛出NullPointerException。

p1处线程“AWT-event queue-0”Java . lang . nullpointerexception中出现异常。P1$1$1 .在P1比较(P1.java:155)(这是返回语句)。P1$1$1 . compare(P1 . Java:152)(这是Arrays.sort行)

所以我试图按照第二维度,也就是# of stuff,对数组进行排序。我应该试着把这些值转换成int并比较它们吗?

以防万一人们说不要使用数组,我必须将它们用于此分配,我只是碰巧通过使用2d数组而不是1d使所有事情都变得更加困难1000倍。

编辑:哎呀,我可能在解释二维数组时犯了一个错误。抱歉,我已经在这个上面工作了一整天,呵呵。

String Collectors[][] = new String[100][2];

然后我有一些代码添加到其中,我想开始按第一维度的第二个索引排序。我想我必须先填充所有索引,这将纠正空指针异常?

解决办法

在尝试排序之前,数组必须已满!谢谢你ILoveCoding♥

共有1个答案

双俊人
2023-03-14

为了执行排序功能,必须初始化数组的所有索引,否则将返回NullPointerException。

来源:ILoveCoding

 类似资料:
  • 问题内容: 为什么我的打印输出数组未在以下代码中排序? 问题答案: 您需要两个循环来实现Bubble Sort。 样例代码:

  • 我一直找不到任何关于这个的问题,我想我想弄清楚这个有点疯狂。 我有以下代码: 这是超级基本的,对吧?根据手册页,第一个参数是指向基本元素的指针,第三个参数是大小。但是,我无法将数组作为排序结果。我仍然很困惑qort的第一个和第三个参数应该是什么,因为我怀疑这就是故障所在。 感谢您的帮助。 谢谢 编辑:我应该补充一点,这段代码显然没有错误检查,而且我试图使用双指针整数数组测试qort,所以虽然是的,

  • 对于这个项目,我得到了一个字符串数组和一个整数数组。int[1]是字符串[1]的排名。我需要使用mergesort按1到n的顺序对int数组进行排序,我在下面已经完成了这项工作。但是当int数组被移动时,我还需要切换字符串数组的位置,以便它们都被排序,如果这有意义的话?我不知道我的编码有什么问题,甚至我的想法是否真的有效,但我一直在stringSorted[k]=stringRight[j]上得到

  • 问题内容: 如何按“订单”键的值对该数组排序?即使这些值当前是连续的,也不会总是如此。 问题答案: 尝试使用usort,如果您仍然使用PHP5.2或更早版本,则必须首先定义一个排序函数: 从PHP 5.3开始,您可以使用匿名函数: 最后,在PHP 7中,您可以使用spaceship运算符: 要将其扩展到多维排序,如果第二个/第三个排序元素为零,请参考第二个/第三个排序元素-下文将详细说明。您也可以

  • 考虑以下数组: 我如何对这个数组进行排序,其中最高值(5)是第一个,然后是2然后是最低值(1)是最后一个?我用了这个: 但我明白了: 它改变了键,但这是错误的。我希望得到这个: 我搜索发现:按数值排序一个数组,但这没有帮助。

  • 我希望根据记录的整数值降序排序: