集合对象按自己想要的方式排序
来源:互联网 发布:屏幕录像专家mac版 编辑:程序博客网 时间:2024/06/06 13:22
package com.entity;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.Iterator;
/*
* 集合中的元素的属性按照自己定义的方式进行排序
*/
public class CollectionsTest {
public static void main(String[] args){
ArrayList<People> list = new ArrayList<People>();
People p1 = new People("z" ,20,"一班");
People p2 = new People("a" ,25,"三班");
People p3= new People("d" ,22,"九班");
People p4 = new People("t" ,30,"七班");
People p5 = new People("h" ,28,"六班");
People p6 = new People("h" ,18,"八班");
People p7 = new People("y" ,19,"二班");
People p8= new People("e" ,27,"十班");
People p9= new People("j" ,30,"五班");
People p10 = new People("k" ,80,"四班");
People p11 = new People("l" ,57,"三班");
People p12 = new People("o" ,84,"七班");
list.add(p1);
list.add(p2);
list.add(p3);
list.add(p4);
list.add(p5);
list.add(p6);
list.add(p7);
list.add(p8);
list.add(p9);
list.add(p10);
list.add(p11);
list.add(p12);
System.out.println("按名字排序");
Collections.sort(list,new NameCompareTo());
for(Iterator<People> iter = list.iterator();iter.hasNext();){
System.out.println(iter.next().toString());
}
System.out.println("--------------------");
System.out.println("按年龄排序");
// System.out.println(list);
Collections.sort(list,new AgeCompareTo());
for(Iterator<People> iter = list.iterator();iter.hasNext();){
System.out.println(iter.next().toString());
}
System.out.println("--------------------");
System.out.println("按班级排序");
// System.out.println(list);
Collections.sort(list,new ClassesCompareTo());
for(Iterator<People> iter = list.iterator();iter.hasNext();){
System.out.println(iter.next().toString());
}
// System.out.println(list);
}
}
class People{
String name;
int age;
String classes;
public People(String name,int age,String classes){
this.name = name;
this.age = age;
this.classes = classes;
}
public String toString(){
return name+" " + age+" " +classes;
}
}
//按名字生序排列
class NameCompareTo implements Comparator{
public int compare(Object o1, Object o2) {
People p1 = (People)o1;
People p2 = (People)o2;
return p1.name.compareTo(p2.name);
}
}
//按年铃升序排列
class AgeCompareTo implements Comparator{
public int compare(Object o1, Object o2) {
People p1 = (People)o1;
People p2 = (People)o2;
return new Integer(p1.age).compareTo(new Integer(p2.age));
}
}
//按班级的生序排列
class ClassesCompareTo implements Comparator{
public int compare(Object o1, Object o2) {
People p1 =(People)o1;
People p2 = (People)o2;
return p2.classes.compareTo(p1.classes);
}
}
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.Iterator;
/*
* 集合中的元素的属性按照自己定义的方式进行排序
*/
public class CollectionsTest {
public static void main(String[] args){
ArrayList<People> list = new ArrayList<People>();
People p1 = new People("z" ,20,"一班");
People p2 = new People("a" ,25,"三班");
People p3= new People("d" ,22,"九班");
People p4 = new People("t" ,30,"七班");
People p5 = new People("h" ,28,"六班");
People p6 = new People("h" ,18,"八班");
People p7 = new People("y" ,19,"二班");
People p8= new People("e" ,27,"十班");
People p9= new People("j" ,30,"五班");
People p10 = new People("k" ,80,"四班");
People p11 = new People("l" ,57,"三班");
People p12 = new People("o" ,84,"七班");
list.add(p1);
list.add(p2);
list.add(p3);
list.add(p4);
list.add(p5);
list.add(p6);
list.add(p7);
list.add(p8);
list.add(p9);
list.add(p10);
list.add(p11);
list.add(p12);
System.out.println("按名字排序");
Collections.sort(list,new NameCompareTo());
for(Iterator<People> iter = list.iterator();iter.hasNext();){
System.out.println(iter.next().toString());
}
System.out.println("--------------------");
System.out.println("按年龄排序");
// System.out.println(list);
Collections.sort(list,new AgeCompareTo());
for(Iterator<People> iter = list.iterator();iter.hasNext();){
System.out.println(iter.next().toString());
}
System.out.println("--------------------");
System.out.println("按班级排序");
// System.out.println(list);
Collections.sort(list,new ClassesCompareTo());
for(Iterator<People> iter = list.iterator();iter.hasNext();){
System.out.println(iter.next().toString());
}
// System.out.println(list);
}
}
class People{
String name;
int age;
String classes;
public People(String name,int age,String classes){
this.name = name;
this.age = age;
this.classes = classes;
}
public String toString(){
return name+" " + age+" " +classes;
}
}
//按名字生序排列
class NameCompareTo implements Comparator{
public int compare(Object o1, Object o2) {
People p1 = (People)o1;
People p2 = (People)o2;
return p1.name.compareTo(p2.name);
}
}
//按年铃升序排列
class AgeCompareTo implements Comparator{
public int compare(Object o1, Object o2) {
People p1 = (People)o1;
People p2 = (People)o2;
return new Integer(p1.age).compareTo(new Integer(p2.age));
}
}
//按班级的生序排列
class ClassesCompareTo implements Comparator{
public int compare(Object o1, Object o2) {
People p1 =(People)o1;
People p2 = (People)o2;
return p2.classes.compareTo(p1.classes);
}
}
- 集合对象按自己想要的方式排序
- TreeSet集合存放自定义类型的对象,可以使用比较器,实现Comparable接口自己设置排序方式
- 对象自己的集合
- 集合中自定义对象排序的两种方式
- 【NoteExpress】以自己想要的方式对附件重命名
- 自己的对象、自己的集合
- 黑马程序员训练营---------TreeSet集合中对象进行排序的两种方式
- 什么是自己想要的幸福生活?
- 明确自己最想要的
- 杂记--关于自己想要的?
- WINCE自己加载自己想要的字体
- WINCE自己加载自己想要的字体
- c#.net如何将API返回json对象转换成自己想要的List<T>
- js声明自己的对象 (另一种方式)
- 一个对象集合排序的类
- 一个对象集合排序的类
- 写一个对象集合排序的类
- 给自己创建的对象排序
- Lucene.Net 2.3.1开发介绍 —— 阅读索引
- 关于 DirectX 中的 dshow.h 找不到
- iPhone 中文的Url直接传进NSURL类中初始化时是会返回nil
- java io file 读取磁盘文件 文件名以列表形式展示在页面
- php获取服务器MAC地址
- 集合对象按自己想要的方式排序
- 关于const和指针
- 一种新的生活
- DirectShow 1 —— 下载与VC配置
- 无法使用连接串连接数据库ORA-01034&ORA-27101
- NSFileManager和NSFileHandle
- android布局基础及范例(二):人人android九宫格布局
- Reapter使用table绑定数据,使用AspNetPager进行分页
- 护士MM,我想做个尿检....(内涵啊)