TurkuBasicOOPinJava / Week 3: Objects, files and exceptions /4. Remove negative numbers - get, remove
KaiquanMah's picture
get, remove
41932b5 verified
raw
history blame
2.49 kB
Write the method
void removeNegatives(ArrayList<Integer> numnbers)
...which removes all numbers less than zero from the list.
Tip: the for loop may not work reliably if the iterated structure changes during loop execution
- you should use another way to iterate through the list instead.
Example method call:
public static void main(String[] parameters){
ArrayList<Integer> numbers = new ArrayList<>();
numbers.add(1);
numbers.add(-2);
numbers.add(-5);
numbers.add(10);
System.out.println(numbers);
removeNegatives(numbers);
System.out.println(numbers);
}
Program outputs:
[1, -2, -5, 10]
[1, 10]
============================
import java.util.Random;
import java.util.ArrayList;
public class Test{
public static void main(String[] args){
final Random r = new Random();
int[][] s = {{1,-2,3}, {10,-20,30,-40}, {-2,4,-6,8,-10}, {-9,-1,-8,2,7,3,-6,-4}};
for (int[] pa : s) {
ArrayList<Integer> lista = new ArrayList<>();
for (int l : pa) lista.add(l);
System.out.println("List before: ");
System.out.println("" + lista);
System.out.println("List after: ");
removeNegatives(lista);
System.out.println(lista);
System.out.println("");
}
}
// ADD
public static void removeNegatives(ArrayList<Integer> numbers) {
for (int i = 0; i < numbers.size(); i++) {
if (numbers.get(i) < 0) {
numbers.remove(i);
// because we remove the current idx
// adjust i by 1 (like as if we finished the previous 'i')
// System.out.println(i);
i--;
// System.out.println(i);
}
}
}
}
// Test1
// List before:
// [1, -2, 3]
// List after:
// 1
// 0
// [1, 3]
// List before:
// [10, -20, 30, -40]
// List after:
// 1
// 0
// 2
// 1
// [10, 30]
// List before:
// [-2, 4, -6, 8, -10]
// List after:
// 0
// -1
// 1
// 0
// 2
// 1
// [4, 8]
// List before:
// [-9, -1, -8, 2, 7, 3, -6, -4]
// List after:
// 0
// -1
// 0
// -1
// 0
// -1
// 3
// 2
// 3
// 2
// [2, 7, 3]
List before:
[1, -2, 3]
List after:
[1, 3]
List before:
[10, -20, 30, -40]
List after:
[10, 30]
List before:
[-2, 4, -6, 8, -10]
List after:
[4, 8]
List before:
[-9, -1, -8, 2, 7, 3, -6, -4]
List after:
[2, 7, 3]