JAVA并发编程随笔【三】Comparator接口(类的比较器)
2017-09-01 10:32
260 查看
一、Comparable接口是在java.lang包下,实现此接口的类可以实现自然排序;而Comparator接口是在java.util包下,此接口是对未实现自然排序接口的类进行排序的;
二、Collections类和Arrays类中都实现了sort排序方法
三、举例说明:
实体类:
具体运行实例:
package framework.yaomy.thread.example;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
import framework.yaomy.thread.model.Dog;
/**
* @Description:TODO
* @version 1.0
* @since JDK1.7
* @author yaomy
* @company xxxxxxxxxxxxxx
* @copyright (c) 2017 yaomy Co'Ltd Inc. All rights reserved.
* @date 2017年9月1日 上午10:02:41
*/
public class ComparatorDemo {
public static void main(String[] args) {
List<Dog> list = new ArrayList<Dog>();
list.add(new Dog(23, "黑子"));
list.add(new Dog(13, "麻花"));
list.add(new Dog(13, "虎子"));
list.add(new Dog(35, "大白"));
//按照狗狗年龄升序排列
Collections.sort(list, new Comparator<Dog>() {
@Override
public int compare(Dog dog1, Dog dog2) {
return dog1.getAge().compareTo(dog2.getAge());
}
});
for(Dog dog:list) {
System.out.println("狗狗年龄:"+dog.getAge()+"==========狗狗名字:"+dog.getDogName());
}
System.out.println("========================分割线======================================");
//按照狗狗年龄降序序排列
Collections.sort(list, new Comparator<Dog>() {
@Override
public int compare(Dog dog1, Dog dog2) {
return dog2.getAge().compareTo(dog1.getAge());
}
});
for(Dog dog:list) {
System.out.p
4000
rintln("狗狗年龄:"+dog.getAge()+"==========狗狗名字:"+dog.getDogName());
}
}
}
运行结果:
二、Collections类和Arrays类中都实现了sort排序方法
Arrays.sort(paramArrayOfObject); //对实现自然排序的类进行排序 Arrays.sort(paramArrayOfT, paramComparator);//对未实现自然排序的类进行排序 Collections.sort(paramList);//对实现自然排序的类进行排序 Collections.sort(paramList, paramComparator);//对未实现自然排序的类进行排序
三、举例说明:
实体类:
package framework.yaomy.thread.model; /** * @Description:小狗实体类 * @version 1.0 * @since JDK1.7 * @author yaomy * @company xxxxxxxxxxxxxx * @copyright (c) 2017 yaomy Co'Ltd Inc. All rights reserved. * @date 2017年9月1日 上午10:02:54 */ public class Dog { private Integer age; private String dogName; public Dog(Integer age, String dogName) { this.age = age; this.dogName = dogName; } public Integer getAge() { return age; } public void setAge(Integer age) { this.age = age; } public String getDogName() { return dogName; } public void setDogName(String dogName) { this.dogName = dogName; } }
具体运行实例:
package framework.yaomy.thread.example;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
import framework.yaomy.thread.model.Dog;
/**
* @Description:TODO
* @version 1.0
* @since JDK1.7
* @author yaomy
* @company xxxxxxxxxxxxxx
* @copyright (c) 2017 yaomy Co'Ltd Inc. All rights reserved.
* @date 2017年9月1日 上午10:02:41
*/
public class ComparatorDemo {
public static void main(String[] args) {
List<Dog> list = new ArrayList<Dog>();
list.add(new Dog(23, "黑子"));
list.add(new Dog(13, "麻花"));
list.add(new Dog(13, "虎子"));
list.add(new Dog(35, "大白"));
//按照狗狗年龄升序排列
Collections.sort(list, new Comparator<Dog>() {
@Override
public int compare(Dog dog1, Dog dog2) {
return dog1.getAge().compareTo(dog2.getAge());
}
});
for(Dog dog:list) {
System.out.println("狗狗年龄:"+dog.getAge()+"==========狗狗名字:"+dog.getDogName());
}
System.out.println("========================分割线======================================");
//按照狗狗年龄降序序排列
Collections.sort(list, new Comparator<Dog>() {
@Override
public int compare(Dog dog1, Dog dog2) {
return dog2.getAge().compareTo(dog1.getAge());
}
});
for(Dog dog:list) {
System.out.p
4000
rintln("狗狗年龄:"+dog.getAge()+"==========狗狗名字:"+dog.getDogName());
}
}
}
运行结果:
狗狗年龄:13==========狗狗名字:麻花 狗狗年龄:13==========狗狗名字:虎子 狗狗年龄:23==========狗狗名字:黑子 狗狗年龄:35==========狗狗名字:大白 ========================分割线====================================== 狗狗年龄:35==========狗狗名字:大白 狗狗年龄:23==========狗狗名字:黑子 狗狗年龄:13==========狗狗名字:麻花 狗狗年龄:13==========狗狗名字:虎子
相关文章推荐
- JAVA并发编程随笔【三】Comparator接口(类的比较器)
- JAVA并发编程随笔【三】Comparator接口(类的比较器)
- JAVA并发编程随笔【三】Comparator接口(类的比较器)
- JAVA并发编程随笔【三】Comparator接口(类的比较器)
- JAVA并发编程随笔【三】Comparator接口(类的比较器)
- JAVA并发编程随笔【三】Comparator接口(类的比较器)
- JAVA并发编程随笔【三】Comparator接口(类的比较器)
- JAVA并发编程随笔【三】Comparator接口(类的比较器)
- JAVA并发编程随笔【三】Comparator接口(类的比较器)
- JAVA并发编程随笔【三】Comparator接口(类的比较器)
- JAVA并发编程随笔【三】Comparator接口(类的比较器)
- JAVA并发编程随笔【三】Comparator接口(类的比较器)
- JAVA并发编程随笔【三】Comparator接口(类的比较器)
- JAVA并发编程随笔【三】Comparator接口(类的比较器)
- JAVA并发编程随笔【三】Comparator接口(类的比较器)
- JAVA并发编程随笔【三】Comparator接口(类的比较器)
- JAVA并发编程随笔【三】Comparator接口(类的比较器)
- JAVA并发编程随笔【三】Comparator接口(类的比较器)
- JAVA并发编程随笔【三】Comparator接口(类的比较器)
- JAVA并发编程随笔【三】Comparator接口(类的比较器)