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);
    
  • 相关阅读:
    20165211 2017-2018-2 《Java程序设计》第1周学习总结
    nginx解析漏洞
    Killable Processes in Oracle Database
    Know more about PGA_AGGREGATE_LIMIT 12c 19c
    mysql查看存储过程函数
    oracle 12.1.0.2升级oracle12.2.0.1(non cdb)
    MySQL 一张表单个索引最多支持创建16个字段
    AWR automatic or manual snapshot hangs – EXADATA
    创建表时报错,索引列超过最大约束
    mysql while 循环
  • 原文地址:https://www.cnblogs.com/pengsn/p/12667435.html
Copyright © 2011-2022 走看看