В приведенном ниже методе я пытаюсь удалить значения в массиве, которые меньше 0 и больше 9. Я занимаюсь исследованиями, и я обнаружил, что использование Arraylist.remove()
, вероятно, будет лучшим способом, но я не знаком с этим пока. Итак, я попытался скопировать весь массив в массив «мусор» и поставить только значения, которые меньше 0 и больше 9. Но мой вывод по-прежнему выходит 123145123145-110
?Как удалить нежелательные элементы в массиве?
public static void test(){
int[] input = {1,2,3,1,4,5,1,2,3,1,4,5,-1,10};
int[] garbage = new int[input.length];
for (int i=0; i<input.length; i++){
if (input[i] < 0 && input[i] > 9){
garbage[i] = input[i];
}
int x = input[i];
System.out.print(x);
}
// EDIT
public static void votes(){
int[] input = {1,2,3,1,4,5,1,2,3,1,4,5,-1,10,20};
int count = 0;
int[] garbage = new int[input.length];
for (int i=0; i<input.length; i++){
if (input[i]<0){
garbage[count] = input[i];
i++;
count++;
}
int x = input[i];
System.out.print(x);
}
}
Мне удалось удалить что-либо меньшее, чем 0, сделав это: public static void votes() { int [] input = {1,2,3,1,4,5,1,2,3,1,4 , 5, -1,10,20}; \t \t \t int count = 0; \t \t \t int [] garbage = новый int [вход.длина]; \t \t \t для (INT I = 0; г 9), я получаю ArrayIndexOutOfBoundsException errror –
huehuegg
Ты просто копируя материал из 'input' в' garbage' - почему вы ожидаете изменения 'input'? также, пожалуйста, не публикуйте код в комментариях - это не читаемо - пожалуйста, отредактируйте/обновите свои вопросы с помощью любой дополнительной информации. – alfasin
Вы действительно думаете, что целое число может быть как менее 0, так и более 9 одновременно? –