import java.util.*; import java.util.Random; class ArraySorting { ArrayList<Integer> arr = new ArrayList<Integer>(); for (int nums = 0; nums < 20; nums++) { int randomnumbers = generate.nextInt(50); arr.add(randomnumbers); } int dupe = 0; for (int n = 0; n < arr.size(); n++) { for (int n2 = n+1; n2 < arr.size(); n2++) { //remove second num if two numbers akike if (check1.equals(check2)) { arr.remove(check2); n2 = n2-1; dupe = 1; } } n = n-dupe; dupe = 0; } for (int n3 = arr.size(); n3 < 20; ++n3) { int randomnumbers = generate.nextInt(50); arr.add(randomnumbers); //check for duplicates again for (int n = 0; n < arr.size(); n++) { for (int n2 = n+1; n2 < arr.size(); n2++) { if (check1.equals(check2)) { arr.remove(check2); n2 = n2-1; dupe = 1; } } n = n - dupe; dupe = 0; } } //before sort int temporary = 0; for(int a=0; a<20; a++){ for (int b = 0; b < 19; b++) { if(arr.set(b,arr.get(b)) > arr.set(b,arr.get(b+1))) { arr.set(temporary,arr.get(b)); arr.set(b,arr.get(b+1)); arr.set((b+1),arr.get(temporary)); } } } for (int a = 0; a < 20; a++) { } } }
Standard input is empty
First list of 20 generated numbers: [9, 29, 40, 16, 47, 6, 27, 42, 30, 9, 38, 16, 10, 24, 43, 41, 2, 29, 18, 11] Duplicates: 3 [40, 6, 27, 42, 30, 9, 38, 16, 10, 24, 43, 41, 2, 29, 18, 11, 25, 47, 33]
Exception in thread "main" java.lang.IndexOutOfBoundsException: Index: 19, Size: 19 at java.util.ArrayList.rangeCheck(ArrayList.java:653) at java.util.ArrayList.get(ArrayList.java:429) at ArraySorting.main(Main.java:69)