Java的Collection.sort()方法
Java中的Collection.sort()方法能使用泛型对对象的变量进行排序,下面是两种方法。
文件名:student.java
import java.util.*; import com.sun.org.apache.xerces.internal.dom.ProcessingInstructionImpl;
import com.sun.xml.internal.ws.policy.privateutil.PolicyUtils.Collections; public class Student implements Comparable<Student>{ private int id;
private String name; public Student(String setname,int id) {
this.id=id;
this.name=setname;
} public int getId() {
return id;
} public void setId(int id) {
this.id = id;
} public String getName() {
return name;
} public void setName(String name) {
this.name = name;
} @Override
public int compareTo(Student stu) {
/* 重写compareTo方法1 Compare排序接口
* id升序排序
if(this.id>stu.id) {
return 1;
}
else if (this.id<stu.id) {
return -1;
}
else {
return 0;
}
或者return this.getId-stu.getId;
*/ //名字升序排序
return this.getName().compareTo(stu.getName());
} }
这个文件主要是定义一个学生类,如果使用Compare排序接口算法,就要在实体类中重写compare方法,能实现对name和id进行升序和降序排序。
文件名:drive.java
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator; public class drive {
public static void main(String[] args){
ArrayList<Student> studentlist=new ArrayList<Student>();
Student stu1 = new Student("zhangsan",12);
Student stu2 = new Student("lisi",4);
Student stu3 = new Student("wangwu", 5);
studentlist.add(stu1);
studentlist.add(stu2);
studentlist.add(stu3);
Collections.sort(studentlist);
System.out.println(studentlist.get(0).getName());
System.out.println(studentlist.get(1).getName());
System.out.println(studentlist.get(2).getName()); //方法2,compare比较器接口
ArrayList<Student> studentlist2=new ArrayList<Student>();
Student stu4=new Student("Tom", 13);
Student stu5=new Student("Susan", 4);
Student stu6=new Student("Puse", 41);
studentlist2.add(stu4);
studentlist2.add(stu5);
studentlist2.add(stu6);
Collections.sort(studentlist2, new Comparator<Student>() {
public int compare(Student a,Student b) {
//return a.getId()-b.getId();升序排序
//降序排序
return b.getId()-a.getId();
}
});
System.out.println(studentlist2.get(0).getId());
System.out.println(studentlist2.get(1).getId());
System.out.println(studentlist2.get(2).getId()); }
}
这里使用了方法2的compare比较器接口,可以在main函数中进行排序,运行结果如下

如图,实现了排序
Java的Collection.sort()方法的更多相关文章
- java中Collections.sort()方法实现集合排序
1.Integer/String泛型的List进行排序 List <Integer> integerlist = new ArrayList<Integer>(); //定 ...
- 关于Java中Arrays.sort()方法TLE
最近一直在练用Java写题,今天无意发现一道很简单的二分题(链接),我一开始是直接开int[]数组调用Arrays.sort()去排序,没想到TLE了,原来是因为jdk中对于int[]的排序是使用快速 ...
- Java集合Collection基本方法
jdk1.7 api中的方法摘要: 参考java集合大全图:https://www.cnblogs.com/xkzhangsanx/p/10889114.html Collection为List.Se ...
- JAVA通过使用sort方法排序
java 代码: 对集合排序: //升序public void listSort1(){ List<Integer> list = new ArrayList<Integer> ...
- Java的Arrays.sort()方法到底用的什么排序算法
暂时网上看过很多JDK8中Arrays.sort的底层原理,有些说是插入排序,有些说是归并排序,也有说大于域值用计数排序法,否则就使用插入排序...其实不全对.让我们分析个究竟: 1 // Use Q ...
- Java学习笔记27(集合框架一:ArrayList回顾、Collection接口方法)
集合:集合是java中提供的一种容器,可以用来存储多个数据 集合和数组的区别: 1.数组的长度是固定的,集合的长度是可变的 2.集合中存储的元素必须是引用类型数据 对ArrayList集合的回顾 示例 ...
- java学习笔记20(Arraylist复习,Collection接口方法,迭代器,增强型for循环)
集合:集合是Java提供的一种容器,可以用来存储多个数据: 集合与数组的区别:集合的长度是可变的,数组的长度是固定的 集合中存储的数据必须是引用类型数据: ArrayList回顾: public cl ...
- java中的排序(自定义数据排序)--使用Collections的sort方法
排序:将一组数据按相应的规则 排列 顺序 1.规则: 基本数据类型:日常的大小排序. 引用类型: 内置引用类型(String,Integer..),内部已经指定规则,直接使用即可.---- ...
- Java Collection集合方法
一.简单方法 package cn.itcast.day15; import java.util.ArrayList; import java.util.Arrays; import java.uti ...
随机推荐
- TOJ2470
#include <stdio.h> struct node{ int x; int y; int step; }first; int zx[4]={-1,0,1,0}; int zy[4 ...
- 《Python黑帽子:黑客与渗透测试编程之道》 网络:原始套接字和流量嗅探
Windows和Linux上的包嗅探: #!/usr/bin/python import socket import os #监听的主机 host = "10.10.10.160" ...
- win10无法访问samba共享
地址: https://blog.csdn.net/xiaohuixing16134/article/details/79601064?utm_source=blogxgwz1 问题描述:配置好sam ...
- 转载:不定义JQuery插件,不要说会JQuery
转载:http://www.cnblogs.com/xcj26/p/3345556.html 一:导言 有些WEB开发者,会引用一个JQuery类库,然后在网页上写一写$("#") ...
- Sublime Text 3快捷键汇总
转自:http://blog.sina.com.cn/s/blog_73c5cfbe0101ldj8.html Sublime Text 3非常实用,但是想要用好,一些快捷键不可或缺,所以转了这个快捷 ...
- 在Ubuntu中增加root用户登录
一:增加root用户登录 1.打开终端,输入:sudo gedit /usr/share/lightdm/lightdm.conf.d/50-ubuntu.conf 2.在弹出的编辑框里输入:gree ...
- java解压缩.gz .zip .tar.gz等格式的压缩包方法总结
1..gz文件是linux下常见的压缩格式.使用 java.util.zip.GZIPInputStream即可,压缩是 java.util.zip.GZIPOutputStream public s ...
- Python小白学习之路(十)—【函数】【函数返回值】【函数参数】
写在前面: 昨天早睡之后,感觉今天已经恢复了百分之八十的样子 又是活力满满的小伙郭 今日份鸡汤: 我始终相信,在这个世界上,一定有另一个自己,在做着我不敢做的事,在过着我想过的生活.-------宫崎 ...
- Linux下面安装swoole
需要安装php7 新建一个文件夹,作为存储swoole的文件夹 然后执行下面相对应的命令,这里是我执行的命令 新建文件夹 mkdir swoole 切入到文件夹中,进行下载安装包 wget http: ...
- R软件常用命令
1.getwd() 获取默认的目录 2.> mydata <- read.csv("1.csv") 读取1.csv文件中的数据,并赋值给一个mydata的对 ...