大家好,我有一个名为GEN的类,我有一个这个我想要的数组是根据时间变量排序这个数组 所以时间最短的人必须是gend [0]。 我希望我能清楚地解释我的问题并使用NetBeans
public class GEN
{
int[][] mark=new int[TIMELIMIT][N+1];
int[][] dimark=new int[TIMELIMIT][N+1];
int time=0;
int[] touched=new int[N+1];
}
public GEN[] gend=new GEN[GENNUM];
答案 0 :(得分:0)
您需要实施Comparable
。
public class GEN implements Comparable<GEN>
{
int[][] mark=new int[TIMELIMIT][N+1];
int[][] dimark=new int[TIMELIMIT][N+1];
int time=0;
int[] touched=new int[N+1];
int compareTo(GEN obj)
{
// compareTo returns a negative number if this is less than obj,
// a positive number if this is greater than obj,
// and 0 if they are equal.
return this.time - obj.time;
}
}
public GEN[] gend=new GEN[GENNUM];
通过实施Comparable
,您可以使用Arrays.sort()
对数组填充GEN
个对象进行排序。 sort
函数使用compareTo
来确定对象的正确排序。因此,一旦您实现了Comparable
,您只需要写:
Arrays.sort(gend);
答案 1 :(得分:0)
说真的,你应该查看Luke Willis在他的回答中发布的Java文档链接,看到大量的类(其中一大部分经常使用)是“已知的实现类”,这令人印象深刻。如果你查看那个列表,并考虑比较对于你熟悉的类有多强大(如果你熟悉自动装箱/拆箱那么你将会,如果没有,你可以点击那个位于Java doc。
你可以坐在那里尝试第一次弄清楚如何编写一个算法,根据每个对象内部的实例变量对例如ArrayList<SomeObjectType> arrList
进行排序,例如Card对象的原始int faceValue。 ..
... 60多分钟后,由于您不熟悉如何创建排序算法,因此需要一段时间。此外,它将是一个有点混淆代码的大块。
...或者您可以阅读Comparable并实施它。
编辑:并不是说手工制作算法会是一件坏事,它绝对是一种很好的学习体验,但是Comparable是一种强大而简洁的工具,可以在你的代码中实现。