How to delete the last element from an array?
Since in Java, arrays are non-resizable, you will have to copy everything into a new, shorter array.
Arrays.copyOf(original, original.length-1)
I know its a very old thread. Still the approved answer itself didn't work for me. And this is how I resolved it.
Create a method like this:
String[] sliceArray(String[] arrayToSlice, int startIndex, int endIndex) throws ArrayIndexOutOfBoundsException { if (startIndex < 0) throw new ArrayIndexOutOfBoundsException("Wrong startIndex = " + startIndex); if (endIndex >= arrayToSlice.length) throw new ArrayIndexOutOfBoundsException("Wrong endIndex = " + endIndex); if (startIndex > endIndex) { // Then swap them! int x = startIndex; startIndex = endIndex; endIndex = x; } ArrayList<String> newArr = new ArrayList<>(); Collections.addAll(newArr, arrayToSlice); for (int i = 0; i < arrayToSlice.length; i++) { if (!(i >= startIndex && i <= endIndex)) // If not with in the start & end indices, remove the index newArr.remove(i); } return newArr.toArray(new String[newArr.size()]);}
Then called it like this:
String lines[] = {"One", "Two", "Three", "Four", "Five"};lines = sliceArray(lines, 0, 3);
This will result in:
"One", "Two", "Three", "Four"
Now I can slice the array in whichever way I want!
lines = sliceArray(lines, 2, 3);
This will result in:
"Three", "Four"
@Test public void removeLastElement() { String[] lastElementRemoved = { "one", "two", "three" }; String[] removedElement = Arrays.copyOf(lastElementRemoved, 2); System.out.println(Arrays.toString(removedElement)); }