zoukankan      html  css  js  c++  java
  • 浅述数组排序

    javascript

    数组自带的函数sort可以根据自定义的排序器排序

    function compare(v1, v2) {
    	return v1-v2;
    } 
    var values = [4,1,2,5,3];
    var vv = values.sort(compare);
    console.info(vv);
    

    java

    如果有一个复杂数据类型的集合需要排序时,处理方式有两种

    用Comparator定义一个比较器

    1. 定义一个Person类
    public class Person {
    
    	private String name;
    
    	private int age;
    
    	public Person(String name, int age) {
    		super();
    		this.name = name;
    		this.age = age;
    	}
    
    	public Person() {
    		super();
    	}
    
    	public String getName() {
    		return name;
    	}
    
    	public void setName(String name) {
    		this.name = name;
    	}
    
    	public int getAge() {
    		return age;
    	}
    
    	public void setAge(int age) {
    		this.age = age;
    	}
    }
    
    1. 定义比较器
    public class PersonComparator implements Comparator<Person> {
    
    	@Override
    	public int compare(Person o1, Person o2) {
    		return o1.getAge() - o2.getAge();
    	}
    }
    
    1. 排序
    List<Person> list = new ArrayList<Person>();
    Collections.sort(list, new PersonComparator());
    

    复杂数据类继承Comprable 重写比较方法

    1. 复杂数据类重写compareTo(O)
    public class Person implements Comparable<Person>{
    
    	private String name;
    
    	private int age;
    
    	public Person(String name, int age) {
    		super();
    		this.name = name;
    		this.age = age;
    	}
    
    	public Person() {
    		super();
    	}
    
    	public String getName() {
    		return name;
    	}
    
    	public void setName(String name) {
    		this.name = name;
    	}
    
    	public int getAge() {
    		return age;
    	}
    
    	public void setAge(int age) {
    		this.age = age;
    	}
    
    	@Override
    	public int compareTo(Person o) {
    		return o.getAge()-this.getAge();
    	}
    }
    
    1. 排序
    List<Person> list = new ArrayList<Person>();
    Collections.sort(list);
    
  • 相关阅读:
    MySQL 01-MySQL简介
    什么是数据库
    系统安装05-Xenserver 7.0安装
    系统安装04-VMware VCSA 6.5 系统安装
    poj--2516--Minimum Cost(最小费用流)
    hdoj--1533--Going Home(最小费用流)
    hdoj--5621--KK's Point(简单数学)
    hdoj--5620--KK's Steel(斐波那契数)
    nyoj--635--Oh, my goddess(dfs)
    poj--2236--棋盘问题(dfs)
  • 原文地址:https://www.cnblogs.com/pengsn/p/12667435.html
Copyright © 2011-2022 走看看