数组有工具类Arrays,集合也有一个工具类Collections。

sort方法:

sort(List list):根据其元素natural ordering对制定的列表进行排序

sort(List list, Comparator super T> c):根据指定的比较器引起的顺序对指定的列表进行排序

案例:

package com.gongxy.demo;

public class Persion implements Comparable{

private String no;

private String name;

private int age;

private double socre;

public String getNo() {

return no;

}

public void setNo(String no) {

this.no = no;

}

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;

}

public double getSocre() {

return socre;

}

public void setSocre(double socre) {

this.socre = socre;

}

@Override

public String toString() {

return "Persion{" +

"no='" + no + '\'' +

", name='" + name + '\'' +

", age=" + age +

", socre=" + socre +

'}';

}

/*

根据年龄排序

*/

@Override

public int compareTo(Persion o) {

//return this.age - o.age;//按照年龄升序

return o.age - this.age;//按照年龄降序

}

}

package com.gongxy.demo;

import java.util.ArrayList;

import java.util.Collections;

import java.util.Comparator;

import java.util.List;

/**

* Collections集合工具类排序

* 主要是针对list的排序

* Comparable和Comparator两个比较器达到的目的都是一样的,但实现方法两种:一种是再该Persion类中直接定义,一个是假借他人之手来制定规则,我们做的时制定规则

* Comparable和Comparator两个接口的区别

* Comparable:这种排序为类的自然排序,类的compareTo方法被称为它的自然方法。只能在类中实现compareTo()一次,不能经常修改类的代码实现自己想要的排序。无需制定比较器

* Comparator:可以将Comparator传递给sort方法,从而允许在排序顺序上实现精确控制,还可以使用Comparator来控制耨写数据结构的顺序,或者诶那些没有自然顺序的对象Collection提供排序

*/

public class ListSortTest {

public static void main(String[] args) {

//comparableTest();

comparatorTest();

}

/**

* 自然顺序

* java.lang.Comparable接口

* 一个类实现了此接口,才表示这个类的对象是可以被排序的

* int compareTo(object o);

* 排序方法返回值规则

* 如果当前对象小于传入对象,则返回任意负整数

* 如果当前对象等于传入对象,返回0

* 如果当前对象大于传入对象,则返回任意正整数

* 排序方法

* 使用Collections.sort方法来对list集合排序,要求list集合中的对象必须要实现java.lang.Comparable接口

*/

static void comparableTest(){

List list = createPersonList();

Collections.sort(list);

System.out.println(list);

//[Persion{no='3', name='gongxh', age=1, socre=62.5}, Persion{no='3', name='gongxy', age=3, socre=68.5}, Persion{no='1', name='gongyg', age=29, socre=98.5}, Persion{no='2', name='gumd', age=31, socre=95.2}]

}

/**

* 自定义排序

* java.lang.Comparator

*/

static void comparatorTest(){

List list = createPersonList();

Collections.sort(list, new ComparatorDemo());

System.out.println(list);

}

static List createPersonList(){

List list = new ArrayList();

Persion p = new Persion();

p.setNo("1");

p.setName("gongyg");

p.setAge(29);

p.setSocre(98.5);

list.add(p);

p = new Persion();

p.setNo("2");

p.setName("gumd");

p.setAge(31);

p.setSocre(95.2);

list.add(p);

p = new Persion();

p.setNo("3");

p.setName("gongxy");

p.setAge(3);

p.setSocre(68.5);

list.add(p);

p = new Persion();

p.setNo("3");

p.setName("gongxh");

p.setAge(1);

p.setSocre(62.5);

list.add(p);

return list;

}

}

/**

* 自定义一个排序方式

*/

class ComparatorDemo implements Comparator {

@Override

public int compare(Persion o1, Persion o2) {

return (int)(o1.getSocre() - o2.getSocre());

}

}

java list排序工具类_java 之 Collections集合工具类排序相关推荐

  1. 小汤学编程之JAVA基础day11——集合框架:List/Set/Map集合、Collections集合工具类、泛型、TreeMap和TreeSet

    一.集合的特点 二.继承结构图 三.List集合 1.特点     2.ArrayList类     3.LinkedList类     4.两者的对比     5.集合的遍历 四.Set集合 1.特 ...

  2. Java集合篇:Map接口、Map接口的实现类、Collections集合工具类

    目录 一.Map接口 1.1 Map接口概述 1.2 Map接口常用功能 二.Map接口的实现类 2.1 Map实现类之一:HashMap 2.1.1 HashMap概述 2.1.2 HashMap的 ...

  3. java.util.list源码_关于fest-util源码包Collections集合工具类过滤、判空、格式化及复制克隆处理...

    一.前言 关于fest-util源码包org.fest.util.Collections集合处理类,实现对数组转换List序列集合.集合duplicatesFrom克隆复制.集合判空isEmpty.并 ...

  4. 【java笔记】Collections集合工具类

    java.utils.Collections是集合工具类,用来对集合进行操作 常用方法: public static<T>boolean addAll(Collection<T> ...

  5. 【小白学Java】D26 》》》Collections集合工具类

    [友情链接]---–->Java中的各种集合大汇总,学习整理 [友情链接]----–> collection集合 [友情链接]----–> ArrayList集合及其常用功能 [友情 ...

  6. Collections集合工具类的方法_sort(List,Comparator)

    简述Comparable和Comparator两个接口的区别. Comparable:强行对实现它的每个类的对象进行整体排序.这种排序被称为类的自然排序,类的compareTo方法被称为它的自然比较方 ...

  7. Collections集合工具类的方法_sort(List)

    Comparator比较器 我们还是先研究这个方法 public static <T> void sort(List<T> list):将集合中元素按照默认规则排序. 不过这次 ...

  8. Collections集合工具类的方法_addAllshuffle

    Collections 常用功能 java.utils.Collections是集合工具类,用来对集合进行操作.部分方法如下: public static <T> boolean addA ...

  9. java封装对象实体类_Java 接口自动化系列--实体类之entity封装

    实体包entity下面有4个类,主要存放java对象,每个类必须有私有属性,空参构造,get set方法 具体excel中数据信息见---工具类excel文章 1.API类 解析excel中接口信息的 ...

最新文章

  1. 如何通过交货单把B库存发出
  2. 第十五篇、程序返回前台的时间差(常用于显示广告)
  3. 看完这篇文章,跟面试官扯皮就没问题了
  4. Linux常见命令(大图)
  5. python加载数据集,读取h5数据集python的一部分
  6. 拼接Sql语句的写法
  7. axios上传图片到php报500,vue项目中使用axios上传图片等文件
  8. mysql一对一关系_sql-MySQL-一对一关系?
  9. python基础--集合
  10. Android getevent,sendevent,input keyevent
  11. 微软产品界面配色方案分析
  12. GT540M最新驱动(windows XP 32位),安装NDIVIA安装程序无法继续解决方法
  13. 微软的面试题及答案-超变态但是很经典
  14. 电商数仓(dwt 层)
  15. 视觉Prompt新方法:超越所有微调方法,参数量大幅减少
  16. 常用的无线充发射IC芯片
  17. js 设置视频的音量大小
  18. 最全iOS 应用上架流程(提交到AppStore)
  19. netca/dbca方框乱码的解决方法
  20. android 桌面背景异常,android 设置桌面背景

热门文章

  1. Android:应用商城
  2. Java:求矩阵每行之和
  3. typora 字体颜色_Typora 使用教程
  4. ie不加载jre_详细讲解!从JVM直到类加载器
  5. 纯后处理的volumetric light
  6. 微异构Embree照片级光线追踪解决方案
  7. Python-OpenCV中的cv2.threshold
  8. javascript基础学习
  9. Debian Linux下的Python学习——入门
  10. HDOJ1874 ( 畅通工程续 ) 【单源最短路径】