Using this How to do When I put high to low or low to high it will arrange ?
String [][]Data={{"Eugine","8"},{"Ben","9"},{"John","19"},{"Jairus","5"},{"Sofia","13"}};
OUTPUT sort by : high to low John",19 Sofia,13 Ben",9 Eugine,8 Jairus,5 sort by : low to high Jairus,5 Eugine,8 Ben,9 Sofia,13 John,19
//This is just my noob code// //please help//
String [][] Data={{"Eugine","8"},{"Ben","9"},{"John","19"},{"Jairus","5"},{"Sofia","13"}};
Arrays.sort(people);
for(Person p : people)
System.out.println(p.name + ", " + p.age);
}
}
class Person implements Comparable<Person>{
public final String name;
public final int age;[enter image description here][1]
public Person(String name, int age){
this.name = name;
this.age = age;
}
@Override
public int compareTo(Person person) {
return age - person.age;
}
Since you are trying to sort in different ways, you need to use Comparator.
Some of the ways in which you can do it are as follows:
import java.util.Arrays;
import java.util.Comparator;
class Person {
private String name;
private int age;
public Person(String name, int age) {
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public int getAge() {
return age;
}
@Override
public String toString() {
return name + " age " + age;
}
}
class LowToHighComparator implements Comparator<Person> {
@Override
public int compare(Person p1, Person p2) {
return Integer.compare(p1.getAge(), p2.getAge());
}
}
class HighToLowComparator implements Comparator<Person> {
@Override
public int compare(Person p1, Person p2) {
return Integer.compare(p2.getAge(), p1.getAge());
}
}
public class Main {
public static void main(String[] args) {
Person[] people = { new Person("Eugine", 8), new Person("Ben", 9), new Person("John", 19),
new Person("Jairus", 5), new Person("Sofia", 13) };
Person[] lowToHigh = people.clone();
Person[] highToLow = people.clone();
Arrays.sort(lowToHigh, new LowToHighComparator());
Arrays.sort(highToLow, new HighToLowComparator());
System.out.println("Unsorted: ");
Arrays.stream(people).forEach(System.out::println);
System.out.println();
System.out.println("Low to high: ");
Arrays.stream(lowToHigh).forEach(System.out::println);
System.out.println();
System.out.println("High to low: ");
Arrays.stream(highToLow).forEach(System.out::println);
}
}
Output:
Unsorted:
Eugine age 8
Ben age 9
John age 19
Jairus age 5
Sofia age 13
Low to high:
Jairus age 5
Eugine age 8
Ben age 9
Sofia age 13
John age 19
High to low:
John age 19
Sofia age 13
Ben age 9
Eugine age 8
Jairus age 5
import java.util.Arrays;
import java.util.Comparator;
class Person {
private String name;
private int age;
public Person(String name, int age) {
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public int getAge() {
return age;
}
@Override
public String toString() {
return name + " age " + age;
}
}
public class Main {
public static void main(String[] args) {
Person[] people = { new Person("Eugine", 8), new Person("Ben", 9), new Person("John", 19),
new Person("Jairus", 5), new Person("Sofia", 13) };
Person[] lowToHigh = people.clone();
Person[] highToLow = people.clone();
Arrays.sort(lowToHigh, Comparator.comparing(Person::getAge));
Arrays.sort(highToLow, Comparator.comparing(Person::getAge).reversed());
System.out.println("Unsorted: ");
Arrays.stream(people).forEach(System.out::println);
System.out.println();
System.out.println("Low to high: ");
Arrays.stream(lowToHigh).forEach(System.out::println);
System.out.println();
System.out.println("High to low: ");
Arrays.stream(highToLow).forEach(System.out::println);
}
}
Output:
Unsorted:
Eugine age 8
Ben age 9
John age 19
Jairus age 5
Sofia age 13
Low to high:
Jairus age 5
Eugine age 8
Ben age 9
Sofia age 13
John age 19
High to low:
John age 19
Sofia age 13
Ben age 9
Eugine age 8
Jairus age 5