Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- * To change this template, choose Tools | Templates
- * and open the template in the editor.
- */
- package test;
- import java.text.ParseException;
- import java.text.SimpleDateFormat;
- import java.util.ArrayList;
- import java.util.Collections;
- import java.util.Comparator;
- import java.util.Date;
- import java.util.logging.Level;
- import java.util.logging.Logger;
- /**
- *
- * @author kajacx
- */
- public class SortMe {
- private static final SimpleDateFormat sdf = new SimpleDateFormat("YYYY");
- private final ArrayList<Entry> entries;
- private SortMe() {
- this.entries = new ArrayList<>();
- }
- public static void main(String[] args) {
- SortMe sm = new SortMe();
- sm.addMany(20);
- sm.print();
- sm.sort(new NameComparator());
- sm.print();
- sm.sort(new DateComparator());
- sm.print();
- sm.sort(new NumberComparator());
- sm.print();
- }
- private void print() {
- for(Entry e: entries) {
- System.out.println(e);
- }
- System.out.println();
- }
- private void addMany(int count) {
- for(int i = 0; i < count; i++) {
- addOne();
- }
- }
- private void addOne() {
- new Entry(Math.random()+"", ((int)(Math.random()*50) + 1970)+ "", (int) (Math.random()*50000));
- }
- private void sort(Comparator c) {
- Collections.sort(entries, c);
- }
- private static class NumberComparator implements Comparator {
- @Override
- public int compare(Object ob1, Object ob2) {
- Entry o1 = (Entry) ob1;
- Entry o2 = (Entry) ob2;
- int result = o1.number - o2.number;
- //System.out.format("%s - %s = %s \n", o1.name, o2.name, result);
- return result;
- }
- }
- private static class DateComparator implements Comparator {
- @Override
- public int compare(Object ob1, Object ob2) {
- Entry o1 = (Entry) ob1;
- Entry o2 = (Entry) ob2;
- Date d1, d2;
- try {
- d1 = sdf.parse(o1.date);
- d2 = sdf.parse(o2.date);
- } catch (ParseException ex) {
- Logger.getLogger(SortMe.class.getName()).log(Level.SEVERE, null, ex);
- return 0;
- }
- int result = d1.compareTo(d2);
- //System.out.format("%s - %s = %s \n", o1.name, o2.name, result);
- return result;
- }
- }
- private static class NameComparator implements Comparator {
- @Override
- public int compare(Object ob1, Object ob2) {
- Entry o1 = (Entry) ob1;
- Entry o2 = (Entry) ob2;
- int result = o1.name.compareTo(o2.name);
- //System.out.format("%s - %s = %s \n", o1.name, o2.name, result);
- return result;
- }
- }
- private class Entry {
- private final String name, date;
- private final int number;
- private Entry(String name, String date, int number) {
- this.name = name;
- this.date = date;
- this.number = number;
- entries.add(this);
- }
- @Override
- public String toString() {
- return "Entry{" + "name=" + name + ", date=" + date + ", number=" + number + '}';
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement