java基础之Collections比较对象

Posted 流世幻羽

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java基础之Collections比较对象相关的知识,希望对你有一定的参考价值。

1.如何根据属性比较对象

package com.it.huanyu;

public class Person {
	
	private int age;
	
	/**
	 * 1.匿名内部类
	 * 2.比较的(利用匿名内部类
	 * 3.动态代理的问题
	 * @param name
	 */
	
	public void say(String name) {
		System.out.println("自己的"+name);
		
	}
	
	public Person() {
	}
	public Person(int age) {
		super();
		this.age = age;
	}


	public int getAge() {
		return age;
	}

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

2.匿名内部类和用Collections.sort比较大小

package com.it.huanyu;

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


public class Test {
		
	public static void main(String[] args) {
		Person p2=new Person(){
			public void say(String name) {
				System.out.println("匿名内部类"+name);
				
			}
		};
		p2.say("网");
		
		ArrayList<Person> lis=new ArrayList<>();
		
		Person p1 = new Person(19);
		Person p5 = new Person(11);
		Person p3 = new Person(36);
		Person p14 = new Person(89);
		lis.add(p1);
		lis.add(p5);
		lis.add(p3);
		lis.add(p14);
		for (Person person : lis) {
			System.err.println(person.getAge());
		}
		/**
		 * 比较排序的作用
		 */
		Collections.sort(lis,new Comparator<Person>() {
			public int compare(Person o1, Person o2) {
				return o1.getAge()-o2.getAge();
			}
		});
		for (Person person : lis) {
			System.err.println(person.getAge());
		}
		
		
	}
	/**
	 * 比较对象的年龄大小,输出年龄大的
	 */
	
	
	
	
}

  

  

以上是关于java基础之Collections比较对象的主要内容,如果未能解决你的问题,请参考以下文章

Java入门笔记之(第六章 collections之map)

Java基础之Comparable接口, Collections类,Iterator接口,泛型(Generic)

Java基础加强之集合

转java之基础 equals和==比较

java基础之Object

java里的Collections类中的静态方法sort()是怎么用比较器比较两个对象?