我有一个ArrayList,里面放的是一些对象,我根据对象的某个字段对ArrayList中的对象进行排序,但是不知道怎么做?请知道的帮一下,谢谢!
------解决方案--------------------
List arr = new ArrayList();
arr.add("哈哈");
arr.add("2");
arr.add("1");
arr.add("5");
arr.add("3");
arr.add("4");
Object[] temp = arr.toArray();
Arrays.sort(temp);
arr = (List) Arrays.asList(temp);
System.out.println(arr);
------解决方案--------------------
- Java code
List list = new ArrayList(); //...... Collections.sort(list, new MyComparator()); class MyComparator implements Comparator { //这里的o1和o2就是list里任意的两个对象,然后按需求把这个方法填完整就行了 public int compare(Object o1, Object o2) { //比较规则 } }
------解决方案--------------------
------解决方案--------------------
------解决方案--------------------
重写public int compare(Object o1, Object o2)这个方法.
------解决方案--------------------
------解决方案--------------------
5楼说的对~~~~~~~~~~~~~~~~~~~~~~~
------解决方案--------------------
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
public class Test1 {
private String a;
private String b;
public Test1() {
}
public Test1(String a, String b) {
this.a = a;
this.b = b;
}
public String getA() {
return a;
}
public void setA(String a) {
this.a = a;
}
public String getB() {
return b;
}
public void setB(String b) {
this.b = b;
}
private List mySort(List arr) { // 交换排序->冒泡排序
Test1 temp = null;
boolean exchange = false;
for (int i = 0; i < arr.size(); i++) {
exchange = false;
for (int j = arr.size() - 2; j >= i; j--) {
if (((Test1) arr.get(j + 1)).getA().compareTo(
((Test1) arr.get(j)).getA()) >= 0) {