Mảng sinh ra vốn không phải để xoá phần tử, nên length không thể thay đổi như n.
Bạn xoá mảng kiểu đó, bản chất nó vẫn là cái mảng ban đầu, n thay đổi không ảnh hưởng kích thước mảng thật. length của Java cũng vậy.
Nếu như đối với kiểu dữ liệu danh sách mà bạn muốn thay đổi kích thước, trong Java bạn nên sử dụng List
List<Integer> a = new ArrayList<>();
a.add(15);//Thêm phần tử 15 vào cuối cùng danh sách
a.add(2, 10);//Thêm phần tử 10 vào vị trí thứ 3 danh sách
a.remove(3);//Xoá phần tử ở vị trí thứ 4
a.remove(x -> x == 5);//Xoá những phần tử có giá trị bằng 5
Còn nếu bạn thực sự muốn dùng mảng, bạn phải khởi tạo mảng mới:
int[] xoaPhanTu(int[] a, int viTri)
{
int[] output = new int[a.length - 1];
for (int i = 0; i < viTri; i += 1)
output[i] = a[i];
for (int i = viTri; i < a.length - 1; i += 1)
output[i] = a[i + 1];
return output;
}
a = xoaPhanTu(a, 5);