3

I have a record object

 public Record{
 double simiADD;
 }

I Have a List of Record objects and I want to Sort on simiADD. Record with less value of simiADD should occur first and record with more value of simiADD should occur later in the sorted list. I wanted to do this operation in a seprate method and not implementing the comparator in Record class.

asked Jul 24, 2011 at 8:20
0

4 Answers 4

4

If you don't want to define a comparison function inside the Record class:

Collections.sort(recordList, new Comparator<Record>() {
 public int compare(Record object1, Record object2) {
 return Double.compare(object1.simiADD, object2.simiADD);
 }
 }
);
answered Jul 24, 2011 at 8:30

Comments

1

I assume that you meant that you don't want to implement "Comparable" interface in your class. Use Comparator and Collection's sort static method:

import java.util.*;
public class EmpSort {
 static final Comparator<Employee> SENIORITY_ORDER =
 new Comparator<Employee>() {
 public int compare(Employee e1, Employee e2) {
 return e2.hireDate().compareTo(e1.hireDate());
 }
 };
 // Employee database
 static final Collection<Employee> employees = ... ;
 public static void main(String[] args) {
 List<Employee>e = new ArrayList<Employee>(employees);
 Collections.sort(e, SENIORITY_ORDER);
 System.out.println(e);
 }
}
answered Jul 24, 2011 at 8:26

Comments

1

Here's a code example

public class Record implements Comparable<Record> {
 public double simiADD;
 public int compareTo(Record r) {
 return Double.compare(this.simiADD, r.simiADD);
 }
}

Then simply using any sort method will use the overridden compareTo for the Record class.

answered Jul 24, 2011 at 8:26

Comments

0

Read the JavaDoc for the Comparable interface. http://download.oracle.com/javase/6/docs/api/java/lang/Comparable.html. Or did you mean "don't want to implement Comparable" instead of "Comparator"?

Comparable is quite standard actually, which is good for the maintenance of your code. The sort method in Collections is based on it, so it works pretty well.

answered Jul 24, 2011 at 8:23

Comments

Your Answer

Draft saved
Draft discarded

Sign up or log in

Sign up using Google
Sign up using Email and Password

Post as a guest

Required, but never shown

Post as a guest

Required, but never shown

By clicking "Post Your Answer", you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.