@Override public Object[] toArray() { final Object[] result = new Object[size()]; for (int i = 0, index = top - 1; index >= 0; i++, index = previous[index] - 1) { result[i] = get(index); } return result; }
@Override public Object[] toArray() { final Object[] result = new Object[size()]; for (int i = 0, index = top - 1; index >= 0; i++, index = previous[index] - 1) { result[i] = get(index); } return result; }
@SuppressWarnings("unchecked") @Override public <S> S[] toArray(final S[] array) { final int size = size(); if (array.length >= size) { for (int i = 0, index = top - 1; index >= 0; i++, index = previous[index] - 1) { array[i] = (S) get(index); } return array; } final S[] result = (S[]) Array.newInstance(array.getClass().getComponentType(), size); for (int i = 0, index = top - 1; index >= 0; i++, index = previous[index] - 1) { result[i] = (S) get(index); } return result; }
@SuppressWarnings("unchecked") @Override public <S> S[] toArray(final S[] array) { final int size = size(); if (array.length >= size) { for (int i = 0, index = top - 1; index >= 0; i++, index = previous[index] - 1) { array[i] = (S) get(index); } return array; } final S[] result = (S[]) Array.newInstance(array.getClass().getComponentType(), size); for (int i = 0, index = top - 1; index >= 0; i++, index = previous[index] - 1) { result[i] = (S) get(index); } return result; }