Для тих, хто не має часу на рефакторинг коду для заміни масивів на Collections (наприклад ArrayList), існує альтернатива. На відміну від Collections, довжину масиву не можна змінити, але масив можна замінити, наприклад:
array = push(array, item);
Недоліки в тому
- весь масив повинен бути скопійований кожного разу, коли ви натискаєте, і
- вихідний масив
Objectне змінюється, тому вам доведеться оновити змінну (и) відповідно.
Ось pushметод для String:
(Ви можете створити кілька pushметодів, один для String, один для intтощо)
private static String[] push(String[] array, String push) {
String[] longer = new String[array.length + 1];
for (int i = 0; i < array.length; i++)
longer[i] = array[i];
longer[array.length] = push;
return longer;
}
Ця альтернатива є більш ефективною, коротшою та важчою для читання:
private static String[] push(String[] array, String push) {
String[] longer = new String[array.length + 1];
System.arraycopy(array, 0, longer, 0, array.length);
longer[array.length] = push;
return longer;
}