0
private JEditorPane textArea[]= new JEditorPane[maxTabs];

このテーブルがあります。いくつかの要素を削除して他の要素を移動したいと思います。たとえば、2番目の要素を削除すると、2番目の要素の代わりに3番目の要素になります。

4

2 に答える 2

0

System.arraycopy()を使用して、配列のチャンクを移動できます。https ://stackoverflow.com/a/5536023/150001を参照してください。

ただし、可能であれば、java.util.LinkedListなどのCollectionクラスの使用を検討してください。これは、要素の削除と並べ替えに非常に適しています。削除/移動が完了したときに配列が必要な場合(おそらく、使用しているAPIで配列が必要な場合)、toArray()メソッドを使用できます。

于 2012-12-15T23:42:16.050 に答える
0

関心のあるシナリオに応じて(たとえば、位置1の要素を削除します)

1)要素を左にシフトし、最後の要素を0またはnullに設定する必要がある場合は、次のような配列のタイプに応じて

[0,1,2,3,4]の前[0,2,3,4,0]の

あなたが使用することができます

System.arraycopy(textArea, index+1, textArea, index, textArea.length-index-1);
array[array.length-1]=null;

2)古い配列を次のような選択された要素を含まない新しい配列に置き換えたい場合

before [0,1,2,3,4]
after [0,2,3,4] //位置1の要素を削除しました(新しい配列の方が小さい)

あなたはこのようなことを試すことができます

List<JEditorPane> listCopy = new ArrayList<JEditorPane>(
        Arrays.asList(textArea));
listCopy.remove(index);
textArea = listCopy.toArray(new JEditorPane[listCopy.size()]);
于 2012-12-15T23:43:14.247 に答える