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 ...
随机推荐
- css3效果隔两秒旋转然后停两秒再继续旋转,无限循环
1.旋转效果 <style type="text/css"> /*底部天象APP红包下载*/ .public_footer_app,.animation{ positi ...
- zoj2893 Evolution(矩阵快速幂)
题意:就是说物种进化,有N种物种,编号是0——N-1,M次进化后,问你编号为N-1的物种有多少数量:其中要注意的就是i物种进化到j物种的概率是p:(那么剩下的不要忘了):所以单位矩阵初始化对角线的值为 ...
- Exploit之初识Linux下缓冲区溢出
本文的目的不是为了介绍如何进行恶意的破坏性活动,而是为了教会你如何去防御此类破坏性活动,以帮助你扩大知识范围,完善自己的技能,如有读者运用本文所学技术从事破坏性活动,本人概不负责. 0×01 前言 1 ...
- servlet中request和response
一.HttpServletRequest介绍 HttpServletRequest对象代表客户端的请求,当客户端通过HTTP协议访问服务器时,HTTP请求头中的所有信息都封装在这个对象中,通过这个对象 ...
- 浅析js中取绝对值的2种方法
1.abs() var aaa=-20; var bbb=Math.abs(aaa); 2.加减法 var aaa=-20; var bbb=-aaa
- 4. Neural Network
1. 神经网络 首先引入一些便于稍后讨论的新标记: $L$:代表神经网络层数$S_l$:代表第$l$层处理单元的个数$K$:代表多分类中类别种数 2. 前向传播(forward propagation ...
- js05
继续学习js,在这里我们主要讲述一下js的BOM(浏览器对象模型)以及一些js库和应用这些js库的方法. 1.浏览器对象模型(BOM): window对象: 表示浏览器窗口,所有的 ...
- Linux开发端口的基本操作命令
Linux端口操作命令 查看开放端口:firewall-cmd --list-all 开发8080端口 --permanent 代码永久开发:firewall-cmd --add-port=8080/ ...
- 剑指offer三十三之丑数
一.题目 如果一个数的因子中,出去1和本身以外,质数因子只包含2.3和5,则把改数称作丑数(Ugly Number).例如6.8都是丑数,但14不是,因为它包含质数因子7. 习惯上我们把1当做是第一个 ...
- Storm实现数字累加Demo
import java.util.Map; import backtype.storm.Config; import backtype.storm.LocalCluster; import backt ...