How to delete the last element from an array? How to delete the last element from an array? arrays arrays

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