我正在做作业,我想知道是否有一个易于移动的元素在数组周围。我试图按字母顺序对作者列表进行排序,所以我想将数组[1]与数组[2]进行比较,如果2属于1,我只想把它移到那里。我认为最好的方法是使用两个for循环。这基本上就是我所拥有的。有没有简单的方法在数组中的j前面移动k?
for(int j = 0; i > j; j++) {
for(int k = 0; k > i; k++) {
if(array[j].getAuthor.compareTo(array[k]) == -1) {
//move k in front of j
} else {
//do nothing
}
}
}
答案 0 :(得分:0)
你使用java,所以jdk为你提供了一种方法。
Arrays.sort(array,new Comparator<Object> {
@Override
public int compare(final Object pre, final Object next){
//return 0, 1 ,-1
}
)
答案 1 :(得分:0)
Java阵列上没有原始的“在前面移动”操作。
您需要做的是重新考虑您的算法,以便它可以使用您可用的基本操作。这些是 * 获取并设置特定偏移量的元素(使用array[i]
),并获取数组的长度(使用array.length
)。
因此,如果您想将array[i]
放在array[j]
前面,则需要使用循环向左或向右移动i
和j
之间的所有元素和作业。我会让你去弄清楚细节...'很明显,设置你的家庭作业的人希望你这样做。
* - 实际上,有一些用于批量复制数组元素的库方法;例如System.arraycopy
。但是,我建议您使用循环实现它,以便您可以更好地了解所涉及的内容。