以下是一个示例代码,演示如何按照double和String对ArrayList进行排序:
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
public class Main {
public static void main(String[] args) {
ArrayList list = new ArrayList<>();
// 添加数据到ArrayList
list.add(new MyObject(2.5, "Apple"));
list.add(new MyObject(1.2, "Banana"));
list.add(new MyObject(3.7, "Orange"));
list.add(new MyObject(0.8, "Grapes"));
// 按照double属性升序排序
Collections.sort(list, new Comparator() {
public int compare(MyObject obj1, MyObject obj2) {
return Double.compare(obj1.getDoubleValue(), obj2.getDoubleValue());
}
});
System.out.println("按照double排序结果:");
for (MyObject obj : list) {
System.out.println(obj.getDoubleValue() + " - " + obj.getStringValue());
}
// 按照String属性升序排序
Collections.sort(list, new Comparator() {
public int compare(MyObject obj1, MyObject obj2) {
return obj1.getStringValue().compareTo(obj2.getStringValue());
}
});
System.out.println("按照String排序结果:");
for (MyObject obj : list) {
System.out.println(obj.getDoubleValue() + " - " + obj.getStringValue());
}
}
}
class MyObject {
private double doubleValue;
private String stringValue;
public MyObject(double doubleValue, String stringValue) {
this.doubleValue = doubleValue;
this.stringValue = stringValue;
}
public double getDoubleValue() {
return doubleValue;
}
public String getStringValue() {
return stringValue;
}
}
在这个示例中,我们创建了一个名为MyObject
的类来表示ArrayList中的对象。这个类有一个doubleValue
属性和一个stringValue
属性,分别表示对象的double和String值。
我们使用Collections.sort()
方法来对ArrayList进行排序。我们创建了两个Comparator
对象,一个用于按照double属性排序,另一个用于按照String属性排序。在compare()
方法中,我们使用Double.compare()
方法来比较double值,使用compareTo()
方法来比较String值。
最后,我们使用循环输出排序后的结果。