白菜之comparable的用法

package com.example.eleven;

/**
 * @author Administrator 公共類Employee首先實現接口Comparable
 *         然後建立本類帶參數構造函數,重載toString和compareTo方法
 */
public class Employee implements Comparable<Employee> {
	private String name;
	private int id;
	private String count;

	public Employee(int id, String name, String count) {
		this.count = count;
		this.id = id;
		this.name = name;
	}

	@Override
	public String toString() {
		StringBuilder aa = new StringBuilder();
		aa.append(id);
		aa.append(name);
		aa.append(count);
		return aa.toString();
	}

	<span style="color:#ff0000;">@Override
	public int compareTo(Employee x) {
		if (this.count.compareTo(x.count) > 0) {//如果是int型對比,那麼直接this.id>x.id--->return 1;
			return -1;//這裏如果寫return 1;下面改成return -1,那麼就是從小到大排列,這裏是從大到小順序排列
		} else if (this.count.compareTo(x.count) < 0) {
			return 1;
		}
		return 0;
</span>	}
}
package com.example.eleven;

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

/**
 <span style="color:#ff6666;">* java中Comparable接口,任何實現此接口的類,都可以按照自己的意願來實現對一組數據的排列
 * 這裏需要指出的是,任何實現Comparable<T>的類,都需要重寫比較方法compareTo()。
 * 在compareTo()裏面可以根據數據的id進行比較,或者按照Sting的首字母進行比較,
 * 雖然最後返回的int值只有正數,負數,0,但是可以調整比較參數來調整從大到小還是從小到大順序排序,刁刁滴!
 * 然後在調用類中實現collections.sort();方法就可以了,如果是保存在數組中,那麼使用Array.sort()就可以了。
</span> */
public class Test {
	public static void main(String[] args) {
		List<Employee> list = new ArrayList<Employee>();
		list.add(new Employee(2, "東方", "A"));
		list.add(new Employee(25, "西方", "D"));
		list.add(new Employee(45, "南方", "W"));
		list.add(new Employee(15, "北方", "B"));
		list.add(new Employee(5, "東方", "S"));
		System.out.println("下面看是對比兩種情況的數據排列!=-----------");
		for (Employee x : list) {
			System.out.println(x);
		}
		System.out.println("下面是用sort方法排列的,從小到大順序進行排列=-----------");
		<span style="color:#ff0000;">Collections.sort(list);
</span>		for (Employee y : list) {
			System.out.println(y);
		}
	}
}



 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章