this is java problem SORTED so you have arraylist ArrayList<Integer> numbers = {
ID: 3910613 • Letter: T
Question
this is java problem SORTED
so you have arraylist
ArrayList<Integer> numbers = {-15,-10,-20,-2,0,10,2,3,4,5}
this list are not sorted we need to make it sorted using two method
first medthod call ifNegative the method parameter with numbers but
need to take only negative number and order it from the biggest number to smallest for example in this case.
-2, -10, -15, -20
sercond medthod is ifPositive the method with parameter numbers but
need to take only positive number and need to order it from smallest to biggest (normal ordering)
in this case 0,2,3,4,5,10
and in the end they need to be order as is in the arraylist that we have so this special sort should be
-2, -10, -15, -20,0 ,2, 3, 4, 5, 10
Explanation / Answer
Here is the completed code for this problem. I have not used Collections.sort() in case if it is not allowed. Used simple bubble sort. Comments are included, go through it, learn how things work and let me know if you have any doubts. Thanks.
// Sort.java
import java.util.ArrayList;
import java.util.Arrays;
public class Sort {
/**
* method to sort only negative numbers in an array list from biggest to
* smallest, and arrange all positive numbers to the other side
*/
static void ifNegative(ArrayList<Integer> numbers) {
int size = numbers.size();
ArrayList<Integer> negativeNumbers = new ArrayList<Integer>();
ArrayList<Integer> numbersToRemove = new ArrayList<Integer>();
// looping through all elements
for (int i = 0; i < size; i++) {
// if the number is negative, adding to the negativeNumbers
// list and numbers to be removed list
if (numbers.get(i) < 0) {
int num = numbers.get(i);
negativeNumbers.add(num);
numbersToRemove.add(num);
}
}
// removing negative numbers from the list
numbers.removeAll(numbersToRemove);
/**
* by now, all negative numbers will be arranged on negative numbers
* list, so we need to sort it
*/
for (int i = 0; i < negativeNumbers.size(); i++) {
for (int j = 0; j < negativeNumbers.size() - 1; j++) {
if (negativeNumbers.get(j) < negativeNumbers.get(j + 1)) {
// swapping elements
int temp = negativeNumbers.get(j);
negativeNumbers.set(j, negativeNumbers.get(j + 1));
negativeNumbers.set(j + 1, temp);
}
}
}
// adding sorted negative numbers to the original list
numbers.addAll(negativeNumbers);
}
/**
* method to sort only positive numbers in an array list from smallest to
* biggest, and arrange all positive numbers to the other side
*/
static void ifPositive(ArrayList<Integer> numbers) {
int size = numbers.size();
ArrayList<Integer> positiveNumbers = new ArrayList<Integer>();
ArrayList<Integer> numbersToRemove = new ArrayList<Integer>();
// looping through all elements
for (int i = 0; i < size; i++) {
// if the number is positive, adding to the positive
// numbers list and numbers to be removed list
if (numbers.get(i) >= 0) {
int num = numbers.get(i);
positiveNumbers.add(num);
numbersToRemove.add(num);
}
}
// removing positive numbers from the list
numbers.removeAll(numbersToRemove);
/**
* by now, all positive numbers will be arranged on positive numbers
* list, so we need to sort it
*/
for (int i = 0; i < positiveNumbers.size(); i++) {
for (int j = 0; j < positiveNumbers.size() - 1; j++) {
if (positiveNumbers.get(j) > positiveNumbers.get(j + 1)) {
// swapping elements
int temp = positiveNumbers.get(j);
positiveNumbers.set(j, positiveNumbers.get(j + 1));
positiveNumbers.set(j + 1, temp);
}
}
}
// adding sorted positive numbers to the original list
numbers.addAll(positiveNumbers);
}
public static void main(String[] args) {
// defining an array list of numbers
ArrayList<Integer> numbers = new ArrayList<Integer>(Arrays.asList(-15,-10,-20,-2,0,10,2,3,4,5));
System.out.println("Original list: "
+ Arrays.toString(numbers.toArray()));
ifNegative(numbers);
ifPositive(numbers);
System.out.println("After calling ifNegative() and ifPositive(): "
+ Arrays.toString(numbers.toArray()));
}
}
/*OUTPUT*/
Original list: [-15, -10, -20, -2, 0, 10, 2, 3, 4, 5]
After calling ifNegative() and ifPositive(): [-2, -10, -15, -20, 0, 2, 3, 4, 5, 10]
Related Questions
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.