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

时间:2015-01-06 23:15:56

标签: java arrays nullpointerexception compare comparator

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

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

我正在尝试使用此代码对其进行排序:

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

我是比较新手,试图阅读有关它的大量文档,但并不真正理解它。 sort函数是否只是获取我想要比较两个字符串的信息然后做它的事情?

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

线程“AWT-EventQueue-0”中的异常java.lang.NullPointerException     在p1.P1 $ 1 $ 1.compare(P1.java:155)(这是return语句)     在p1.P1 $ 1 $ 1.compare(P1.java:152)(这是Arrays.sort行)

所以我试图按照它的第二个维度对数组进行排序。我应该尝试将这些值转换为int并比较整数吗?

只是因为人们说不使用数组,我必须使用它们进行这项任务,我只是碰巧使用2d数组而不是1d使所有事情变得更难1000倍。 < / p>

编辑:哎呀我可能在解释2d数组时犯了一个错误。道歉,我一整天都在努力工作。

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

然后我有一些代码添加到那里,我想开始按第一维的第二个索引进行排序。我想我必须先填写所有索引,这样可以解决空指针异常吗?

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

1 个答案:

答案 0 :(得分:0)

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

来源:ILoveCoding