W3School TIY Editor

  • W3School 在线教程
  • 改变方向
  • 暗黑模式
​x
 
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
​
// 定义偶数优先排序比较器
class SortEvenFirst implements Comparator {
  public int compare(Object obj1, Object obj2) {
    // 确保对象是整数类型
    Integer a = (Integer)obj1;
    Integer b = (Integer)obj2;
    
    // 检查每个数字是否为偶数
    // 当数字除以 2 余数为 0 时即为偶数
    boolean aIsEven = (a % 2) == 0;
    boolean bIsEven = (b % 2) == 0;
    
    if (aIsEven == bIsEven) {
    
      // 如果两数同为偶数或同为奇数,则按正常排序规则处理
      if (a < b) return -1;
      if (a > b) return 1;
      return 0;
      
    } else {
    
      // 如果 a 是偶数则排前面,否则 b排前面
      if (aIsEven) {
        return -1;
      } else {
        return 1;
      }
    }
  }
}
​
public class Main {
  public static void main(String[] args) {
    ArrayList<Integer> myNumbers = new ArrayList<Integer>();
    myNumbers.add(33);
    myNumbers.add(15);
    myNumbers.add(20);
    myNumbers.add(34);
    myNumbers.add(8);
    myNumbers.add(12);
​
      Comparator myComparator = new SortEvenFirst();
    Collections.sort(myNumbers, myComparator);
​
    for (int i : myNumbers) {
      System.out.println(i);
    }
  }
}