0

私は割り当てを行っていますが、配列内の要素を簡単に移動できるかどうか疑問に思っていました。著者のリストをアルファベット順に並べ替えようとしているので、配列 [1] を配列 [2] と比較し、2 が 1 の前にある場合は、そこに移動したいと思います。これを行う最善の方法は、2 つの for ループを使用することだと考えました。これが基本的に私が持っているものです。配列内で k を j の前に移動する簡単な方法はありますか?

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
                }
            }

        }
4

2 に答える 2

0

Java を使用するため、jdk がメソッドを提供します。

Arrays.sort(array,new Comparator<Object> {
      @Override
      public int compare(final Object pre, final Object next){
        //return 0, 1 ,-1 
}
)
于 2013-03-29T01:58:46.840 に答える
0

Java 配列には、プリミティブな「前に移動」操作はありません。

あなたがしなければならないことは、利用可能な原始的な操作を使用して機能するように、アルゴリズムを再考することです。*特定のオフセットで要素を取得および設定する ( を使用array[i])、および配列の長さを取得する ( を使用array.length)。

array[i]したがって、前に置きたい場合は、ループと割り当てを使用して、array[j]すべての要素を左右に移動する必要がありますij詳細はあなたに任せます... 'それは明らかに、あなたの宿題を設定した人があなたに期待していることだからです.


* - 実際には、配列要素を一括コピーするためのライブラリ メソッドがいくつかあります。例えばSystem.arraycopy。ただし、何が関係しているかをよりよく理解できるように、ループを使用して実装することをお勧めします。

于 2013-03-29T02:39:32.910 に答える