List容器三种排序示例

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

/**
 * 
 */

/**
 * 类说明: List排序三种示例
 * Time: 2014-1-21 下午3:25:17 
 * @author 凯文加内特
 * Company: http://weibo.com/u/3165936675
 */

public class ListSort {

	class User {
		public String getName() {
			return name;
		}

		public void setName(String name) {
			this.name = name;
		}

		public Integer getAge() {
			return age;
		}

		public void setAge(int age) {
			this.age = age;
		}

		private String name;//姓名
		public Integer age;//年龄
	}

	class Dog implements Comparable<Dog> {
		public String getName() {
			return name;
		}

		public void setName(String name) {
			this.name = name;
		}

		public Integer getAge() {
			return age;
		}

		public void setAge(Integer age) {
			this.age = age;
		}

		private String name;
		private Integer age;

		@Override
		public int compareTo(Dog dog) {
			return this.getAge().compareTo(dog.getAge());
		}
	}

	class Cat implements Comparator<Cat> {
		public String getName() {
			return name;
		}

		public void setName(String name) {
			this.name = name;
		}

		public Integer getAge() {
			return age;
		}

		public void setAge(Integer age) {
			this.age = age;
		}

		private String name;
		private Integer age;

		@Override
		public int compare(Cat o1, Cat o2) {
			return o1.getAge().compareTo(o2.getAge());
		}
	}

	public static void main(String[] args) {
		System.out.println("====Collections.sort重载方法实现开始====");
		List<User> users = new ArrayList<User>();
		ListSort sort = new ListSort();
		User u1 = sort.new User();
		u1.setName("郭德纲");
		u1.setAge(40);
		User u2 = sort.new User();
		u2.setName("于谦");
		u2.setAge(35);
		User u3 = sort.new User();
		u3.setName("奥斯特洛夫斯基");
		u3.setAge(80);
		users.add(u1);
		users.add(u2);
		users.add(u3);
		//根据Collections.sort重载方法来实现  
		Collections.sort(users, new Comparator<User>() {
			@Override
			public int compare(User u1, User u2) {
				return u1.getAge().compareTo(u2.getAge());
			}
		});
		for (User user : users) {
			System.out.println(user.getName() + "的年龄:" + user.getAge());
		}
		System.out.println("====Collections.sort重载方法实现结束====");
		System.out.println("====实现Comparable开始====");
		List<Dog> dogs = new ArrayList<Dog>();
		Dog d1 = sort.new Dog();
		d1.setName("能能");
		d1.setAge(3);
		Dog d2 = sort.new Dog();
		d2.setName("肥肥");
		d2.setAge(2);
		Dog d3 = sort.new Dog();
		d3.setName("老豆豆");
		d3.setAge(7);
		dogs.add(d1);
		dogs.add(d2);
		dogs.add(d3);
		for (Dog dog : dogs) {
			System.out.println(dog.getName() + "的年龄:" + dog.getAge());
		}
		System.out.println("====实现Comparable结束====");
		System.out.println("====实现Comparator开始====");
		List<Cat> cats = new ArrayList<Cat>();
		Cat c1 = sort.new Cat();
		c1.setName("花花");
		c1.setAge(3);
		Cat c2 = sort.new Cat();
		c2.setName("贱仔");
		c2.setAge(3);
		Cat c3 = sort.new Cat();
		c3.setName("福福");
		c3.setAge(3);
		cats.add(c1);
		cats.add(c2);
		cats.add(c3);
		for (Cat cat : cats) {
			System.out.println(cat.getName() + "年龄:" + cat.getAge());
		}

		System.out.println("====实现Comparator结束====");
	}
}


转载于:https://my.oschina.net/ydsakyclguozi/blog/194761

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值