删除和移动表中的元素:java
我有这个表,我想删除一些元素并移动其他元素,例如,如果我删除第二个元素,第三个元素将取代第二个元素,依此类推。您可以使用System.arraycopy()移动数组块:请参阅删除和移动表中的元素:java,java,swing,Java,Swing,我有这个表,我想删除一些元素并移动其他元素,例如,如果我删除第二个元素,第三个元素将取代第二个元素,依此类推。您可以使用System.arraycopy()移动数组块:请参阅 如果可以,可以考虑使用JavaUTL.LIKEDLIST这样的集合类,它更适合移除和重新排序元素。如果在完成删除/移动时仍然需要数组(可能您正在使用的API需要它),则可以使用toArray()方法。取决于您感兴趣的场景(例如,我们删除位置1处的元素) 1) If元素应向左移位,最后一个元素应设置为0或null,具体取决于
如果可以,可以考虑使用JavaUTL.LIKEDLIST这样的集合类,它更适合移除和重新排序元素。如果在完成删除/移动时仍然需要数组(可能您正在使用的API需要它),则可以使用toArray()方法。
取决于您感兴趣的场景(例如,我们删除位置1处的元素) 1) If元素应向左移位,最后一个元素应设置为0或null,具体取决于数组类型,如 在[0,1,2,3,4]之前 [0,2,3,4,0]之后 你可以用private JEditorPane textArea[]= new JEditorPane[maxTabs];
2) 当您想用不包含选定元素的新数组替换旧数组时,如
在[0,1,2,3,4]之前
[0,2,3,4]//之后,我们删除了位置1处的元素(新数组更小)
你可以试试这样的
System.arraycopy(textArea, index+1, textArea, index, textArea.length-index-1);
array[array.length-1]=null;
List listCopy=new ArrayList(
Arrays.asList(textArea));
删除(索引);
textArea=listCopy.toArray(新的JEditorPane[listCopy.size()]);
List<JEditorPane> listCopy = new ArrayList<JEditorPane>(
Arrays.asList(textArea));
listCopy.remove(index);
textArea = listCopy.toArray(new JEditorPane[listCopy.size()]);