I am new to java so I need help with the below scenario.
I have an ArrayList
that stores dates and other information, I want to print the arraylist in which the last 3 days' dates should be on top, the rest is following the same list.
Any help would be appreciated.
package learn.java.com;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
public class Person {
private String orderno;
private String itemno;
private Date orderdate;
public String getOrderno() {
return orderno;
}
public void setOrderno(String orderno) {
this.orderno = orderno;
}
public String getItemno() {
return itemno;
}
public void setItemno(String itemno) {
this.itemno = itemno;
}
public Date getOrderdate() {
return orderdate;
}
public void setOrderdate(Date orderdate) {
this.orderdate = orderdate;
}
public Person(String orderno, String itemno, Date orderdate) {
this.orderno = orderno;
this.itemno = itemno;
this.orderdate = orderdate;
}
public static void main(String[] args) throws ParseException {
ArrayList<Person> list = new ArrayList<>();
list.add(new Person("099909","BC101", new SimpleDateFormat("dd-MM-yyyy").parse("01-01-2010")));
list.add(new Person("989878","BC102", new SimpleDateFormat("dd-MM-yyyy").parse("02-01-1990")));
list.add(new Person("878788","BC103", new SimpleDateFormat("dd-MM-yyyy").parse("03-01-2000")));
list.add(new Person("099909","BC104", new SimpleDateFormat("dd-MM-yyyy").parse("04-01-2010")));
list.add(new Person("989878","BC105", new SimpleDateFormat("dd-MM-yyyy").parse("05-01-1990")));
list.add(new Person("878788","BC106", new SimpleDateFormat("dd-MM-yyyy").parse("06-01-2000")));
list.add(new Person("099909","BC107", new SimpleDateFormat("dd-MM-yyyy").parse("07-01-2010")));
list.add(new Person("989878","BC108", new SimpleDateFormat("dd-MM-yyyy").parse("08-01-1990")));
list.add(new Person("878788","BC109", new SimpleDateFormat("dd-MM-yyyy").parse("09-01-2000")));
System.out.println("Before Sort");
for (Person person : list) {
System.out.println(person.orderno + " " + person.getItemno()+ " " + person.getOrderdate());
}
}
}
"CURRENT OUTPUT"
099909 BC101 Fri Jan 01 00:00:00 EST 2010
989878 BC102 Tue Jan 02 00:00:00 EST 1990
878788 BC103 Mon Jan 03 00:00:00 EST 2000
099909 BC104 Mon Jan 04 00:00:00 EST 2010
989878 BC105 Fri Jan 05 00:00:00 EST 1990
878788 BC106 Thu Jan 06 00:00:00 EST 2000
099909 BC107 Thu Jan 07 00:00:00 EST 2010
989878 BC108 Mon Jan 08 00:00:00 EST 1990
878788 BC109 Sun Jan 09 00:00:00 EST 2000
I WANT TO SEE OUTPUT LIKE THIS
099909 BC107 Thu Jan 07 00:00:00 EST 2010
989878 BC108 Mon Jan 08 00:00:00 EST 1990
878788 BC109 Sun Jan 09 00:00:00 EST 2000
099909 BC101 Fri Jan 01 00:00:00 EST 2010
989878 BC102 Tue Jan 02 00:00:00 EST 1990
878788 BC103 Mon Jan 03 00:00:00 EST 2000
099909 BC104 Mon Jan 04 00:00:00 EST 2010
989878 BC105 Fri Jan 05 00:00:00 EST 1990
878788 BC106 Thu Jan 06 00:00:00 EST 2000
Thanks